[Bug 204298] xpt_release_device() panic: mutex CAM queue lock not owned

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Nov 5 19:19:54 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204298

--- Comment #5 from Scott M. Ferris <smferris at gmail.com> ---
(In reply to Alexander Motin from comment #3)

Yes, for the patch to work we have to use the lock ordering:
  devq->send_mtx before bus->eb_mtx
  device->device_mtx before bus->eb_mtx

It's a counter-intuitive ordering but seems to work given how eb_mtx is used
today. Where would we violate that ordering?  I don't see anyplace acquiring
another lock while holding bus->eb_mtx.

No, wait, I missed xpt_alloc_device() wanting the send_mtx in order to
cam_devq_resize().  Can we solve that by moving the cam_devq_resize() from
xpt_alloc_device() up into xpt_compile_path()?  That appears to be the only
caller of xport->alloc_device() and only the transports call
xpt_alloc_device().  I'll see if I can make that work.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-scsi mailing list