From f27f6edaf4983b00a3c0e2f6ab720cfa3150a147 Mon Sep 17 00:00:00 2001 From: John Garry 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 Signed-off-by: John Garry Signed-off-by: Martin K. Petersen --- drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) Index: linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c =================================================================== --- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c +++ linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c @@ -806,8 +806,10 @@ slot_index_alloc_quirk_v2_hw(struct hisi 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. */