Commit 73af7e68 authored by Justin Tee's avatar Justin Tee Committed by Cheng Yu
Browse files

scsi: lpfc: Move NPIV's transport unregistration to after resource clean up

mainline inclusion
from mainline-v6.9-rc2
commit 4ddf01f2f1504fa08b766e8cfeec558e9f8eef6c
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I9UMD0
CVE: CVE-2024-36952

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4ddf01f2f1504fa08b766e8cfeec558e9f8eef6c



--------------------------------

There are cases after NPIV deletion where the fabric switch still believes
the NPIV is logged into the fabric.  This occurs when a vport is
unregistered before the Remove All DA_ID CT and LOGO ELS are sent to the
fabric.

Currently fc_remove_host(), which calls dev_loss_tmo for all D_IDs including
the fabric D_ID, removes the last ndlp reference and frees the ndlp rport
object.  This sometimes causes the race condition where the final DA_ID and
LOGO are skipped from being sent to the fabric switch.

Fix by moving the fc_remove_host() and scsi_remove_host() calls after DA_ID
and LOGO are sent.

Signed-off-by: default avatarJustin Tee <justin.tee@broadcom.com>
Link: https://lore.kernel.org/r/20240305200503.57317-3-justintee8345@gmail.com


Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Conflicts:
        drivers/scsi/lpfc/lpfc_vport.c
[There are only context conficts, no code logic conflicts.]
Signed-off-by: default avatarCheng Yu <serein.chengyu@huawei.com>
parent 6a985437
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment