anolis-cloud-kernel/drivers/scsi/lpfc
Tuo Li 63d9358c22 scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
ANBZ: #8285

commit 0e881c0a4b 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>
Fixes: CVE-2024-24855
Signed-off-by: Bitao Hu <yaoma@linux.alibaba.com>
Reviewed-by: Xunlei Pang <xlpang@linux.alibaba.com>
Link: https://gitee.com/anolis/cloud-kernel/pulls/2832
2024-03-11 06:32:36 +00:00
..
Makefile
lpfc.h scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop 2022-02-23 12:01:07 +01:00
lpfc_attr.c scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop 2022-02-23 12:01:07 +01:00
lpfc_attr.h
lpfc_bsg.c
lpfc_bsg.h
lpfc_compat.h
lpfc_crtn.h
lpfc_ct.c
lpfc_debugfs.c
lpfc_debugfs.h
lpfc_disc.h
lpfc_els.c scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop 2022-02-23 12:01:07 +01:00
lpfc_hbadisc.c scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan() 2024-03-11 06:32:36 +00:00
lpfc_hw.h
lpfc_hw4.h scsi: lpfc: Allow reduced polling rate for nvme_admin_async_event cmd completion 2022-06-22 14:13:14 +02:00
lpfc_ids.h
lpfc_init.c scsi: lpfc: Fix queue failures when recovering from PCI parity error 2022-04-20 09:23:21 +02:00
lpfc_logmsg.h
lpfc_mbox.c
lpfc_mem.c
lpfc_nl.h
lpfc_nportdisc.c scsi: lpfc: Fix port stuck in bypassed state after LIP in PT2PT topology 2022-06-22 14:13:14 +02:00
lpfc_nvme.c scsi: lpfc: Allow reduced polling rate for nvme_admin_async_event cmd completion 2022-06-22 14:13:14 +02:00
lpfc_nvme.h
lpfc_nvmet.c
lpfc_scsi.c
lpfc_scsi.h
lpfc_sli.c scsi: lpfc: Fix resource leak in lpfc_sli4_send_seq_to_ulp() 2022-06-09 10:20:52 +02:00
lpfc_sli.h
lpfc_sli4.h
lpfc_version.h
lpfc_vport.c
lpfc_vport.h