cvs commit: src/sys/cam cam_xpt.c
Brian Fundakowski Feldman
green at FreeBSD.org
Mon Jan 16 15:57:45 PST 2006
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 at FreeBSD.org \ The Power to Serve! \
Opinions expressed are my own. \,,,,,,,,,,,,,,,,,,,,,,\
More information about the cvs-src
mailing list