• James Bottomley's avatar
    [SCSI] Fix oops caused by queue refcounting failure · e73e079b
    James Bottomley authored
    In certain circumstances, we can get an oops from a torn down device.
    Most notably this is from CD roms trying to call scsi_ioctl.  The root
    cause of the problem is the fact that after scsi_remove_device() has
    been called, the queue is fully torn down.  This is actually wrong
    since the queue can be used until the sdev release function is called.
    Therefore, we add an extra reference to the queue which is released in
    sdev->release, so the queue always exists.
    Reported-by: default avatarParag Warudkar <parag.lkml@gmail.com>
    Cc: stable@kernel.org
    Signed-off-by: default avatarJames Bottomley <jbottomley@parallels.com>
    e73e079b
scsi_sysfs.c 27.5 KB