Re: Linux 3.0 oopses when pulling a USB CDROM

Dan Williams
2011-07-03T09:14:30Z

On Sat, Jul 2, 2011 at 10:37 AM, Alan Stern <stern@rowland.harvard.edu> wrote:
> The second bug, which hit me but apparently not any of you, is that the
> request_queue's elevator gets deallocated while it is still in use.
> That's because __scsi_remove_device() calls scsi_free_queue(), which
> does blk_cleanup_queue(), which calls elevator_exit(), even though the
> device file is still open and more requests will be submitted when the
> file is closed.
>
> I'm not sure of the right fix for this.  One possibility is to move the
> scsi_free_queue() call to scsi_device_dev_release_usercontext().  Or
> maybe the elevator_exit() call should be moved to blk_release_queue().
>
> Also, I have no idea why this shows up with USB drives but not other
> SCSI transports.  A fluke of timing?
>

Not sure it's related, but it sounds like the hotplug failures being
seen with libsas hotplug. Have not had a chance yet to track it down
further with isci, but mvsas developer Xiangliang Yu is reporting:

http://marc.info/?l=linux-scsi&m=130707166512002&w=2

He tracked it down to a suspected regression between .39-rc4 and
.39-rc5 but did not finalize the bisect.

The isci driver sees this and other signatures all seemingly related
to early device tear down and only when pulling a drive with in-flight
i/o.

--
Dan