Date: Mon, 16 Jan 2006 18:57:44 -0500 From: Brian Fundakowski Feldman <green@FreeBSD.org> To: Ian Dowse <iedowse@FreeBSD.org> Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/cam cam_xpt.c Message-ID: <20060116235744.GH27794@green.homeunix.org> In-Reply-To: <200601110206.k0B2699N020079@repoman.freebsd.org> References: <200601110206.k0B2699N020079@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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 ]''''''''''\ <> green@FreeBSD.org \ The Power to Serve! \ Opinions expressed are my own. \,,,,,,,,,,,,,,,,,,,,,,\
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060116235744.GH27794>