From: Greg Kroah-Hartman Date: Mon, 8 May 2023 08:46:50 +0000 (+0200) Subject: 6.1-stable patches X-Git-Tag: v5.15.111~25 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a0d830ad6ebae26885b8c6b2d73568cd052e89b9;p=thirdparty%2Fkernel%2Fstable-queue.git 6.1-stable patches added patches: scsi-libsas-grab-the-ata-port-lock-in-sas_ata_device_link_abort.patch --- diff --git a/queue-6.1/scsi-libsas-grab-the-ata-port-lock-in-sas_ata_device_link_abort.patch b/queue-6.1/scsi-libsas-grab-the-ata-port-lock-in-sas_ata_device_link_abort.patch new file mode 100644 index 00000000000..e8bb2efe5a9 --- /dev/null +++ b/queue-6.1/scsi-libsas-grab-the-ata-port-lock-in-sas_ata_device_link_abort.patch @@ -0,0 +1,42 @@ +From a67aad57d9aee41180aff36e54cb72fe4b8d5a5a Mon Sep 17 00:00:00 2001 +From: Xingui Yang +Date: Wed, 21 Dec 2022 01:52:03 +0000 +Subject: scsi: libsas: Grab the ATA port lock in sas_ata_device_link_abort() + +From: Xingui Yang + +commit a67aad57d9aee41180aff36e54cb72fe4b8d5a5a upstream. + +Grab the ATA port lock in sas_ata_device_link_abort() before calling +ata_link_abort() as outlined in this function's locking requirements. + +Fixes: 44112922674b ("scsi: libsas: Add sas_ata_device_link_abort()") +Signed-off-by: Xingui Yang +Reviewed-by: John Garry +Reviewed-by: Jason Yan +Signed-off-by: Martin K. Petersen +Signed-off-by: Greg Kroah-Hartman +--- + drivers/scsi/libsas/sas_ata.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/scsi/libsas/sas_ata.c ++++ b/drivers/scsi/libsas/sas_ata.c +@@ -890,7 +890,9 @@ void sas_ata_device_link_abort(struct do + { + struct ata_port *ap = device->sata_dev.ap; + struct ata_link *link = &ap->link; ++ unsigned long flags; + ++ spin_lock_irqsave(ap->lock, flags); + device->sata_dev.fis[2] = ATA_ERR | ATA_DRDY; /* tf status */ + device->sata_dev.fis[3] = ATA_ABORTED; /* tf error */ + +@@ -898,6 +900,7 @@ void sas_ata_device_link_abort(struct do + if (force_reset) + link->eh_info.action |= ATA_EH_RESET; + ata_link_abort(link); ++ spin_unlock_irqrestore(ap->lock, flags); + } + EXPORT_SYMBOL_GPL(sas_ata_device_link_abort); + diff --git a/queue-6.1/series b/queue-6.1/series index bc5fcbf2ee0..5bb704ca345 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -608,3 +608,4 @@ i40e-remove-string-printing-for-i40e_status.patch i40e-use-int-for-i40e_status.patch drm-amd-display-gcc13-fix-enum-mismatch.patch debugobject-ensure-pool-refill-again.patch +scsi-libsas-grab-the-ata-port-lock-in-sas_ata_device_link_abort.patch