Messages in this thread | | | Date | Thu, 1 Jun 2023 12:48:43 -0700 | Subject | Re: [PATCH v5] scsi: core: Wait until device is fully resumed before doing rescan | From | Bart Van Assche <> |
| |
On 6/1/23 08:56, Kai-Heng Feng wrote: > During system resuming process, the resuming order is from top to down. > Namely, the ATA host is resumed before disks connected to it. > > When an EH is scheduled while ATA host is resumed and disk device is > still suspended, the device_lock hold by scsi_rescan_device() is never > released so the dpm_resume() of the disk is blocked forerver, therefore > the system can never be resumed back. > > That's because scsi_attach_vpd() is expecting the disk device is in > operational state, as it doesn't work on suspended device. > > To avoid such deadlock, wait until the scsi device is fully resumed, > before continuing the rescan process.
Why doesn't scsi_attach_vpd() support runtime power management? Calling scsi_attach_vpd() should result in a call of sdev_runtime_resume(), isn't it?
Thanks,
Bart.
| |