On Wed, Jan 11, 2006 at 02:06:09AM +0000, Ian Dowse wrote: > iedowse 2006-01-11 02:06:09 UTC > > FreeBSD src repository > > Modified files: > sys/cam cam_xpt.c > Log: > When deregistering a bus, attempt to flush out all outstanding > operations before returning. Point the bus at a dummy cam_sim > structure so that any CCBs will complete immediately with a > CAM_DEV_NOT_THERE status, and ensure that any xpt_schedule() calls > on the bus's devices will immediately call the peripheral's > periph_start() routine. Also repeat the async messages because > devices that were part of the way through being probed may appear > after the original AC_LOST_DEVICE was sent, and would otherwise > never go away. > > These changes make it possible to deregister a bus and free the SIM > at most stages during bus probing without the usual crashes in > camisr(). In particular, plugging in a umass device and then > unplugging it as soon as the first probe messages appeared would > almost always result in a crash. Now the device just goes away with > a few CAM errors and all references to the CAM bus, target and > device are dropped correctly.
Good job -- thankless work to fix these kinds of problems but so nice to have fixed once and for all after they happen to you the umpteenth time. -- Brian Fundakowski Feldman \'[ FreeBSD ]''''''''''\ <> [EMAIL PROTECTED] \ The Power to Serve! \ Opinions expressed are my own. \,,,,,,,,,,,,,,,,,,,,,,\ _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "[EMAIL PROTECTED]"