diff options
| author | 2021-09-06 22:34:02 +0530 | |
|---|---|---|
| committer | 2021-09-14 22:29:11 -0400 | |
| commit | b27a40534ef76a22628a5c12f98ea489823a8ba5 (patch) | |
| tree | 346426a6850a533dc7ced04bd2915066db22a678 /drivers/scsi/pm8001/pm8001_init.c | |
| parent | scsi: pm80xx: Fix incorrect port value when registering a device (diff) | |
| download | linux-dev-b27a40534ef76a22628a5c12f98ea489823a8ba5.tar.xz linux-dev-b27a40534ef76a22628a5c12f98ea489823a8ba5.zip | |
scsi: pm80xx: Fix lockup in outbound queue management
Commit 1f02beff224e ("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: 1f02beff224e ("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>
Diffstat (limited to 'drivers/scsi/pm8001/pm8001_init.c')
0 files changed, 0 insertions, 0 deletions
