sst-linux/drivers/scsi/lpfc
Tuo Li 30652c8ceb scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
commit 0e881c0a4b6146b7e856735226208f48251facd8 upstream.

The variable phba->fcf.fcf_flag is often protected by the lock
phba->hbalock() when is accessed. Here is an example in
lpfc_unregister_fcf_rescan():

  spin_lock_irq(&phba->hbalock);
  phba->fcf.fcf_flag |= FCF_INIT_DISC;
  spin_unlock_irq(&phba->hbalock);

However, in the same function, phba->fcf.fcf_flag is assigned with 0
without holding the lock, and thus can cause a data race:

  phba->fcf.fcf_flag = 0;

To fix this possible data race, a lock and unlock pair is added when
accessing the variable phba->fcf.fcf_flag.

Reported-by: BassCheck <bass@buaa.edu.cn>
Signed-off-by: Tuo Li <islituo@gmail.com>
Link: https://lore.kernel.org/r/20230630024748.1035993-1-islituo@gmail.com
Reviewed-by: Justin Tee <justin.tee@broadcom.com>
Reviewed-by: Laurence Oberman <loberman@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Wenshan Lan <jetlan9@163.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-03-13 12:53:25 +01:00
..
lpfc_attr.c
lpfc_attr.h
lpfc_bsg.c
lpfc_bsg.h
lpfc_compat.h
lpfc_crtn.h
lpfc_ct.c scsi: lpfc: Ensure DA_ID handling completion before deleting an NPIV instance 2024-10-17 15:22:17 +02:00
lpfc_debugfs.c
lpfc_debugfs.h
lpfc_disc.h scsi: lpfc: Ensure DA_ID handling completion before deleting an NPIV instance 2024-10-17 15:22:17 +02:00
lpfc_els.c scsi: lpfc: Add ELS_RSP cmd to the list of WQEs to flush in lpfc_els_flush_cmd() 2024-10-17 15:22:17 +02:00
lpfc_hbadisc.c scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan() 2025-03-13 12:53:25 +01:00
lpfc_hw4.h
lpfc_hw.h
lpfc_ids.h
lpfc_init.c
lpfc_logmsg.h
lpfc_mbox.c
lpfc_mem.c
lpfc_nl.h
lpfc_nportdisc.c scsi: lpfc: Update PRLO handling in direct attached topology 2024-10-17 15:21:46 +02:00
lpfc_nvme.c
lpfc_nvme.h
lpfc_nvmet.c
lpfc_scsi.c scsi: lpfc: Validate hdwq pointers before dereferencing in reset/errata paths 2024-12-14 19:53:54 +01:00
lpfc_scsi.h
lpfc_sli4.h
lpfc_sli.c scsi: lpfc: Validate hdwq pointers before dereferencing in reset/errata paths 2024-12-14 19:53:54 +01:00
lpfc_sli.h
lpfc_version.h
lpfc_vmid.c
lpfc_vport.c scsi: lpfc: Ensure DA_ID handling completion before deleting an NPIV instance 2024-10-17 15:22:17 +02:00
lpfc_vport.h
lpfc.h
Makefile