summaryrefslogtreecommitdiff
path: root/tools/lib/python/kdoc/python_version.py
diff options
context:
space:
mode:
authorNigel Kirkland <nkirkland2304@gmail.com>2026-10-12 17:16:45 -0700
committerMartin K. Petersen (Oracle) <mkp@kernel.org>2026-10-13 23:38:58 -0400
commit5750b941ac75ad03570923d0f17331b6d832c69e (patch)
tree2a1b212ffe363e2152869333c522573546bb6bda /tools/lib/python/kdoc/python_version.py
parent57b0a51937ef4a94cb6c86d42136d122be841694 (diff)
downloadlinux-next-5750b941ac75ad03570923d0f17331b6d832c69e.tar.gz
linux-next-5750b941ac75ad03570923d0f17331b6d832c69e.zip
scsi: lpfc: Rework I/O flush ordering when unloading driver
The lpfc_els_abort() routine has a code path that cancels outstanding I/Os on the ELS ring when attempted aborts fail. The failed aborts are queued to a drv_cmpl_list and then cancelled after the ELS pring->txcmplq is fully traversed. However if the abort failure returns IOCB_ABORTING, then the driver should not have cancelled it. Doing so starts two threads working on the same iocb and ndlp, leading to unintended race conditions. Fix by capturing the IOCB_ABORTING return value in lpfc_els_abort() and not adding it to the list of IOCBs for cancelling. We should allow the IOCB scheduled for abort to complete naturally. This avoids simultaneous threads acting on the same IOCB and ndlp objects. The lpfc_free_iocb_list() is moved to execute after lpfc_sli4_hba_unset() allowing the routine to flush I/O before freeing it. And, in lpfc_pci_remove_one_s4() a call to flush the phba->wq is added. This makes the unload logic consistent with offline handling logic. Signed-off-by: Nigel Kirkland <nkirkland2304@gmail.com> Tested-by: Ewan D. Milne <emilne@redhat.com> Link: https://patch.msgid.link/20261013001648.62289-6-nkirkland2304@gmail.com Signed-off-by: Martin K. Petersen (Oracle) <mkp@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions