37 lines
1.3 KiB
Diff
37 lines
1.3 KiB
Diff
From f27f6edaf4983b00a3c0e2f6ab720cfa3150a147 Mon Sep 17 00:00:00 2001
|
|
From: John Garry <john.garry@huawei.com>
|
|
Date: Tue, 16 Oct 2018 23:00:36 +0800
|
|
Subject: [PATCH 08/31] scsi: hisi_sas: Fix spin lock management in
|
|
slot_index_alloc_quirk_v2_hw()
|
|
Origin: https://git.kernel.org/linus/fe5fb42de36227c1c2dbb1e7403329ec8a915c20
|
|
|
|
Currently a spin_unlock_irqrestore() call is missing on the error path,
|
|
so add it.
|
|
|
|
Reported-by: Julia Lawall <julia.lawall@lip6.fr>
|
|
Signed-off-by: John Garry <john.garry@huawei.com>
|
|
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|
|
---
|
|
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
|
|
index 58a564c75a35..77a85ead483e 100644
|
|
--- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
|
|
+++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
|
|
@@ -806,8 +806,10 @@ slot_index_alloc_quirk_v2_hw(struct hisi_hba *hisi_hba,
|
|
while (1) {
|
|
start = find_next_zero_bit(bitmap,
|
|
hisi_hba->slot_index_count, start);
|
|
- if (start >= end)
|
|
+ if (start >= end) {
|
|
+ spin_unlock_irqrestore(&hisi_hba->lock, flags);
|
|
return -SAS_QUEUE_FULL;
|
|
+ }
|
|
/*
|
|
* SAS IPTT bit0 should be 1, and SATA IPTT bit0 should be 0.
|
|
*/
|
|
--
|
|
2.20.1
|
|
|