]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: pm80xx: Fix lockup in outbound queue management
authorAjish Koshy <Ajish.Koshy@microchip.com>
Mon, 6 Sep 2021 17:04:02 +0000 (22:34 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 15 Sep 2021 02:29:11 +0000 (22:29 -0400)
commit8f9987614147f0285fa9ed5cbf7c2258729d457b
tree346426a6850a533dc7ced04bd2915066db22a678
parentd11a24e3cd7efa8d69c1bbf0e7b6f9c96c35d58c
scsi: pm80xx: Fix lockup in outbound queue management

Commit 5c65ffd556e4 ("scsi: pm80xx: Remove global lock from outbound queue
processing") introduced a lock per outbound queue. Prior to that change the
driver was using a global lock for all outbound queues.

While processing the I/O responses and events the driver takes the outbound
queue spinlock and is supposed to release it in pm8001_ccb_task_free_done()
before calling command done(). Since the older code was using a global
lock, pm8001_ccb_task_free_done() was releasing the global spin lock. The
change that split the lock per outbound queue did not consider this and
pm8001_ccb_task_free_done() was still releasing the global lock.

Link: https://lore.kernel.org/r/20210906170404.5682-3-Ajish.Koshy@microchip.com
Fixes: 5c65ffd556e4 ("scsi: pm80xx: Remove global lock from outbound queue processing")
Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Ajish Koshy <Ajish.Koshy@microchip.com>
Signed-off-by: Viswas G <Viswas.G@microchip.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/pm8001/pm8001_sas.h
drivers/scsi/pm8001/pm80xx_hwi.c