]> 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)
commit4cd6de8d5982a9e8eb45cf4f3072ed1018ddc8ab
tree346426a6850a533dc7ced04bd2915066db22a678
parent040a74870ee990e7934f6bdaae1dffca420f05f3
scsi: pm80xx: Fix lockup in outbound queue management

Commit 52098e5bfad4 ("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: 52098e5bfad4 ("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