Commit b32cc17d authored by Yihang Li's avatar Yihang Li Committed by Niklas Cassel
Browse files

ata: libata-scsi: Add missing scsi_device_put() in ata_scsi_dev_rescan()



Call scsi_device_put() in ata_scsi_dev_rescan() if the device or its
queue are not running.

Fixes: 0c76106c ("scsi: sd: Fix TCG OPAL unlock on system resume")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarYihang Li <liyihang9@h-partners.com>
Reviewed-by: default avatarDamien Le Moal <dlemoal@kernel.org>
Signed-off-by: default avatarNiklas Cassel <cassel@kernel.org>
parent 12d724f2
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -4894,8 +4894,10 @@ void ata_scsi_dev_rescan(struct work_struct *work)
			spin_unlock_irqrestore(ap->lock, flags);
			if (do_resume) {
				ret = scsi_resume_device(sdev);
				if (ret == -EWOULDBLOCK)
				if (ret == -EWOULDBLOCK) {
					scsi_device_put(sdev);
					goto unlock_scan;
				}
				dev->flags &= ~ATA_DFLAG_RESUMING;
			}
			ret = scsi_rescan_device(sdev);