]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commit
scsi: lpfc: Fix illegal memory access on Abort IOCBs
authorJames Smart <jsmart2021@gmail.com>
Wed, 21 Apr 2021 23:44:33 +0000 (16:44 -0700)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 18 Jun 2021 13:02:24 +0000 (15:02 +0200)
commitd85c378345cd7dbe789ebb61eb9b174aaefdb585
treebacf0a52e3392b7d63986f7d4056d1ccbb1ec149
parent63939b546fb656f3d439c933a567a083ba0feac9
scsi: lpfc: Fix illegal memory access on Abort IOCBs

BugLink: https://bugs.launchpad.net/bugs/1931158
[ Upstream commit e1364711359f3ced054bda9920477c8bf93b74c5 ]

In devloss timer handler and in backend calls to terminate remote port I/O,
there is logic to walk through all active IOCBs and validate them to
potentially trigger an abort request. This logic is causing illegal memory
accesses which leads to a crash. Abort IOCBs, which may be on the list, do
not have an associated lpfc_io_buf struct. The driver is trying to map an
lpfc_io_buf struct on the IOCB and which results in a bogus address thus
the issue.

Fix by skipping over ABORT IOCBs (CLOSE IOCBs are ABORTS that don't send
ABTS) in the IOCB scan logic.

Link: https://lore.kernel.org/r/20210421234433.102079-1-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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/scsi/lpfc/lpfc_sli.c