diff options
author | Tuo Li <[email protected]> | 2023-06-30 10:47:48 +0800 |
---|---|---|
committer | Martin K. Petersen <[email protected]> | 2023-07-05 21:14:22 -0400 |
commit | 0e881c0a4b6146b7e856735226208f48251facd8 (patch) | |
tree | 097e591aefdc743d83cf52edd9320339c4f4cf8e /tools/testing/selftests/bpf/progs/test_prog_array_init.c | |
parent | 24033d71cc36ae8af02b56ec22c7490779a9e39f (diff) |
scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
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 <[email protected]>
Signed-off-by: Tuo Li <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Reviewed-by: Justin Tee <[email protected]>
Reviewed-by: Laurence Oberman <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
Diffstat (limited to 'tools/testing/selftests/bpf/progs/test_prog_array_init.c')
0 files changed, 0 insertions, 0 deletions