]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: lpfc: Fix queue failures when recovering from PCI parity error
authorJames Smart <jsmart2021@gmail.com>
Thu, 17 Mar 2022 03:27:36 +0000 (20:27 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 30 Mar 2022 03:19:38 +0000 (23:19 -0400)
commitbb4a61e7cc0209faca992f8e8e49cf0750dc6f04
treeaedd3ae5657a273db54cbb932b188026043e2f7c
parentc32cee3727c28b376bdd8034d8b6936e0ab34f2b
scsi: lpfc: Fix queue failures when recovering from PCI parity error

When recovering from a pci-parity error the driver is failing to re-create
queues, causing recovery to fail. Looking deeper, it was found that the
interrupt vector count allocated on the recovery was fewer than the vectors
originally allocated. This disparity resulted in CPU map entries with stale
information. When the driver tries to re-create the queues, it attempts to
use the stale information which indicates an eq/interrupt vector that was
no longer created.

Fix by clearng the cpup map array before enabling and requesting the IRQs
in the lpfc_sli_reset_slot_s4 routine().

Link: https://lore.kernel.org/r/20220317032737.45308-4-jsmart2021@gmail.com
Co-developed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_init.c