diff options
| author | Nigel Kirkland <nkirkland2304@gmail.com> | 2026-10-12 17:16:44 -0700 |
|---|---|---|
| committer | Martin K. Petersen (Oracle) <mkp@kernel.org> | 2026-10-13 23:38:58 -0400 |
| commit | 57b0a51937ef4a94cb6c86d42136d122be841694 (patch) | |
| tree | 21a8dec09f1753f1f33b508739fb2ee225f0cb67 /tools/lib/python/kdoc/python_version.py | |
| parent | e7e065ec672af054c50eb270b5a6b178fd46b291 (diff) | |
| download | linux-next-57b0a51937ef4a94cb6c86d42136d122be841694.tar.gz linux-next-57b0a51937ef4a94cb6c86d42136d122be841694.zip | |
scsi: lpfc: Check fc4_xpt_flags before decrementing ndlp kref on FDISC error
The current initial kref count drop logic for an ndlp that fails FDISC
assumes that the ndlp has never registered with transport layer and thus
the lpfc_dev_loss_tmo_callbk never called. However, a failed FDISC can
occur after a successful transport layer registration too. So,
lpfc_dev_loss_tmo_callbk can occur and there is a potential
use-after-free on the ndlp.
Check ndlp->fc4_xpt_flags if previously registered with an upper layer
transport and check ndlp->nlp_flags if there is a LPFC_EVT_DEV_LOSS work
pending. If not previously registered nor LPFC_EVT_DEV_LOSS work pending,
then set the NLP_DROPPED flag as before and decrement the initial kref on
FDISC error. However, if ndlp has been previously registered, then let the
pre-existing logic for each transport's respective dev_loss_tmo_callbk
perform the initial kref decrement.
Signed-off-by: Nigel Kirkland <nkirkland2304@gmail.com>
Link: https://patch.msgid.link/20261013001648.62289-5-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
