Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Revert "scsi: make 'state' device attribute pollable"
This reverts commit 8a97712. This commit added a call to sysfs_notify() from within scsi_device_set_state(), which in turn turns out to make libata very unhappy, because ata_eh_detach_dev() does spin_lock_irqsave(ap->lock, flags); .. if (ata_scsi_offline_dev(dev)) { dev->flags |= ATA_DFLAG_DETACHED; ap->pflags |= ATA_PFLAG_SCSI_HOTPLUG; } and ata_scsi_offline_dev() then does that scsi_device_set_state() to set it offline. So now we called sysfs_notify() from within a spinlocked region, which really doesn't work. The 0day robot reported this as: BUG: sleeping function called from invalid context at kernel/locking/mutex.c:238 because sysfs_notify() ends up calling kernfs_find_and_get_ns() which then does mutex_lock(&kernfs_mutex).. The pollability of the device state isn't critical, so revert this all for now, and maybe we'll do it differently in the future. Reported-by: Fengguang Wu <[email protected]> Acked-by: Tejun Heo <[email protected]> Acked-by: Martin K. Petersen <[email protected]> Acked-by: Hannes Reinecke <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
- Loading branch information