* [PATCH 5.15.y] scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
@ 2025-04-03 3:29 bin.lan.cn
2025-04-03 3:29 ` [PATCH 5.10.y] " bin.lan.cn
2025-04-03 15:38 ` [PATCH 5.15.y] " Sasha Levin
0 siblings, 2 replies; 9+ messages in thread
From: bin.lan.cn @ 2025-04-03 3:29 UTC (permalink / raw)
To: gregkh, stable
Cc: bass, islituo, bin.lan.cn, justin.tee, loberman, martin.petersen
From: Tuo Li <islituo@gmail.com>
[ Upstream commit 0e881c0a4b6146b7e856735226208f48251facd8 ]
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: Bin Lan <bin.lan.cn@windriver.com>
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
Build test passed.
---
drivers/scsi/lpfc/lpfc_hbadisc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 4bb0a15cfcc0..54aff304cdcf 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -6954,7 +6954,9 @@ lpfc_unregister_fcf_rescan(struct lpfc_hba *phba)
if (rc)
return;
/* Reset HBA FCF states after successful unregister FCF */
+ spin_lock_irq(&phba->hbalock);
phba->fcf.fcf_flag = 0;
+ spin_unlock_irq(&phba->hbalock);
phba->fcf.current_rec.flag = 0;
/*
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 5.10.y] scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
2025-04-03 3:29 [PATCH 5.15.y] scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan() bin.lan.cn
@ 2025-04-03 3:29 ` bin.lan.cn
2025-04-03 10:52 ` Bin Lan
2025-04-03 15:39 ` Sasha Levin
2025-04-03 15:38 ` [PATCH 5.15.y] " Sasha Levin
1 sibling, 2 replies; 9+ messages in thread
From: bin.lan.cn @ 2025-04-03 3:29 UTC (permalink / raw)
To: gregkh, stable
Cc: bass, islituo, bin.lan.cn, justin.tee, loberman, martin.petersen
From: Tuo Li <islituo@gmail.com>
[ Upstream commit 0e881c0a4b6146b7e856735226208f48251facd8 ]
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: Bin Lan <bin.lan.cn@windriver.com>
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
Build test passed.
---
drivers/scsi/lpfc/lpfc_hbadisc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 68ff233f936e..3ff76ca147a5 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -6790,7 +6790,9 @@ lpfc_unregister_fcf_rescan(struct lpfc_hba *phba)
if (rc)
return;
/* Reset HBA FCF states after successful unregister FCF */
+ spin_lock_irq(&phba->hbalock);
phba->fcf.fcf_flag = 0;
+ spin_unlock_irq(&phba->hbalock);
phba->fcf.current_rec.flag = 0;
/*
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 5.10.y] scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
2025-04-03 3:29 ` [PATCH 5.10.y] " bin.lan.cn
@ 2025-04-03 10:52 ` Bin Lan
2025-04-03 20:58 ` Justin Tee
2025-04-03 15:39 ` Sasha Levin
1 sibling, 1 reply; 9+ messages in thread
From: Bin Lan @ 2025-04-03 10:52 UTC (permalink / raw)
To: gregkh, stable; +Cc: bass, islituo, justin.tee, loberman, martin.petersen
There is a configuration dependency issue in the original 5.10.y,
CONFIG_SCSI_LPFC should rely on CONFIG_IRQ_POLL.
So it is needed to enable CONFIG_IRQ_POLL also when building the changed
source code. Otherwise you get a link error:
ld: drivers/scsi/lpfc/lpfc_sli.o: in function `__lpfc_sli4_process_cq':
lpfc_sli.c:(.text+0x37b6): undefined reference to `irq_poll_complete'
ld: drivers/scsi/lpfc/lpfc_sli.o: in function `lpfc_sli4_process_eq':
lpfc_sli.c:(.text+0x41b1): undefined reference to `irq_poll_sched'
ld: drivers/scsi/lpfc/lpfc_sli.o: in function `lpfc_cq_create':
lpfc_sli.c:(.text+0x1281f): undefined reference to `irq_poll_init'
--
Bin Lan
On 4/3/2025 11:29 AM, bin.lan.cn@windriver.com wrote:
> From: Tuo Li <islituo@gmail.com>
>
> [ Upstream commit 0e881c0a4b6146b7e856735226208f48251facd8 ]
>
> 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: Bin Lan <bin.lan.cn@windriver.com>
> Signed-off-by: He Zhe <zhe.he@windriver.com>
> ---
> Build test passed.
> ---
> drivers/scsi/lpfc/lpfc_hbadisc.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
> index 68ff233f936e..3ff76ca147a5 100644
> --- a/drivers/scsi/lpfc/lpfc_hbadisc.c
> +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
> @@ -6790,7 +6790,9 @@ lpfc_unregister_fcf_rescan(struct lpfc_hba *phba)
> if (rc)
> return;
> /* Reset HBA FCF states after successful unregister FCF */
> + spin_lock_irq(&phba->hbalock);
> phba->fcf.fcf_flag = 0;
> + spin_unlock_irq(&phba->hbalock);
> phba->fcf.current_rec.flag = 0;
>
> /*
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 5.15.y] scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
2025-04-03 3:29 [PATCH 5.15.y] scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan() bin.lan.cn
2025-04-03 3:29 ` [PATCH 5.10.y] " bin.lan.cn
@ 2025-04-03 15:38 ` Sasha Levin
1 sibling, 0 replies; 9+ messages in thread
From: Sasha Levin @ 2025-04-03 15:38 UTC (permalink / raw)
To: stable; +Cc: bin.lan.cn, Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: 0e881c0a4b6146b7e856735226208f48251facd8
WARNING: Author mismatch between patch and upstream commit:
Backport author: bin.lan.cn@windriver.com
Commit author: Tuo Li<islituo@gmail.com>
Status in newer kernel trees:
6.13.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (exact SHA1)
6.1.y | Present (different SHA1: 30652c8ceb9a)
Note: The patch differs from the upstream commit:
---
1: 0e881c0a4b614 ! 1: 878d9878dbf20 scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
@@ Metadata
## Commit message ##
scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
+ [ Upstream commit 0e881c0a4b6146b7e856735226208f48251facd8 ]
+
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():
@@ Commit message
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: Bin Lan <bin.lan.cn@windriver.com>
+ Signed-off-by: He Zhe <zhe.he@windriver.com>
## drivers/scsi/lpfc/lpfc_hbadisc.c ##
@@ drivers/scsi/lpfc/lpfc_hbadisc.c: lpfc_unregister_fcf_rescan(struct lpfc_hba *phba)
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-5.15.y | Success | Success |
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 5.10.y] scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
2025-04-03 3:29 ` [PATCH 5.10.y] " bin.lan.cn
2025-04-03 10:52 ` Bin Lan
@ 2025-04-03 15:39 ` Sasha Levin
1 sibling, 0 replies; 9+ messages in thread
From: Sasha Levin @ 2025-04-03 15:39 UTC (permalink / raw)
To: stable; +Cc: bin.lan.cn, Sasha Levin
[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected.
No action required from the submitter.
The upstream commit SHA1 provided is correct: 0e881c0a4b6146b7e856735226208f48251facd8
WARNING: Author mismatch between patch and upstream commit:
Backport author: bin.lan.cn@windriver.com
Commit author: Tuo Li<islituo@gmail.com>
Status in newer kernel trees:
6.13.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (exact SHA1)
6.1.y | Present (different SHA1: 30652c8ceb9a)
5.15.y | Not found
Note: The patch differs from the upstream commit:
---
1: 0e881c0a4b614 ! 1: efb93eed6f136 scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
@@ Metadata
## Commit message ##
scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
+ [ Upstream commit 0e881c0a4b6146b7e856735226208f48251facd8 ]
+
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():
@@ Commit message
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: Bin Lan <bin.lan.cn@windriver.com>
+ Signed-off-by: He Zhe <zhe.he@windriver.com>
## drivers/scsi/lpfc/lpfc_hbadisc.c ##
@@ drivers/scsi/lpfc/lpfc_hbadisc.c: lpfc_unregister_fcf_rescan(struct lpfc_hba *phba)
---
Results of testing on various branches:
| Branch | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-5.10.y | Success | Success |
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 5.10.y] scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
2025-04-03 10:52 ` Bin Lan
@ 2025-04-03 20:58 ` Justin Tee
2025-04-04 6:28 ` Greg KH
0 siblings, 1 reply; 9+ messages in thread
From: Justin Tee @ 2025-04-03 20:58 UTC (permalink / raw)
To: gregkh
Cc: Justin Tee, Bin Lan, stable, bass, islituo, loberman,
martin.petersen
[-- Attachment #1: Type: text/plain, Size: 1077 bytes --]
Hi Greg,
> There is a configuration dependency issue in the original 5.10.y,
> CONFIG_SCSI_LPFC should rely on CONFIG_IRQ_POLL.
Is it possible to help out by porting this commit "fad0a16130b6 scsi:
lpfc: Add auto select on IRQ_POLL" into stable tree branches 5.9 and
later?
Thanks,
Justin
--
This electronic communication and the information and any files transmitted
with it, or attached to it, are confidential and are intended solely for
the use of the individual or entity to whom it is addressed and may contain
information that is confidential, legally privileged, protected by privacy
laws, or otherwise restricted from disclosure to anyone else. If you are
not the intended recipient or the person responsible for delivering the
e-mail to the intended recipient, you are hereby notified that any use,
copying, distributing, dissemination, forwarding, printing, or copying of
this e-mail is strictly prohibited. If you received this e-mail in error,
please return the e-mail to the sender, delete it from your computer, and
destroy any printed copy of it.
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4190 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 5.10.y] scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
2025-04-03 20:58 ` Justin Tee
@ 2025-04-04 6:28 ` Greg KH
2025-04-04 20:23 ` Justin Tee
0 siblings, 1 reply; 9+ messages in thread
From: Greg KH @ 2025-04-04 6:28 UTC (permalink / raw)
To: Justin Tee
Cc: Justin Tee, Bin Lan, stable, bass, islituo, loberman,
martin.petersen
On Thu, Apr 03, 2025 at 01:58:00PM -0700, Justin Tee wrote:
> This electronic communication and the information and any files transmitted
> with it, or attached to it, are confidential and are intended solely for
> the use of the individual or entity to whom it is addressed and may contain
> information that is confidential, legally privileged, protected by privacy
> laws, or otherwise restricted from disclosure to anyone else. If you are
> not the intended recipient or the person responsible for delivering the
> e-mail to the intended recipient, you are hereby notified that any use,
> copying, distributing, dissemination, forwarding, printing, or copying of
> this e-mail is strictly prohibited. If you received this e-mail in error,
> please return the e-mail to the sender, delete it from your computer, and
> destroy any printed copy of it.
Now deleted.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 5.10.y] scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
2025-04-04 6:28 ` Greg KH
@ 2025-04-04 20:23 ` Justin Tee
2025-04-05 7:34 ` Greg KH
0 siblings, 1 reply; 9+ messages in thread
From: Justin Tee @ 2025-04-04 20:23 UTC (permalink / raw)
To: Greg KH
Cc: Justin Tee, Bin Lan, stable, bass, islituo, loberman,
martin.petersen
Hi Greg,
> > This electronic communication and the information and any files transmitted
> > with it, or attached to it, are confidential and are intended solely for
> > the use of the individual or entity to whom it is addressed and may contain
> > information that is confidential, legally privileged, protected by privacy
> > laws, or otherwise restricted from disclosure to anyone else. If you are
> > not the intended recipient or the person responsible for delivering the
> > e-mail to the intended recipient, you are hereby notified that any use,
> > copying, distributing, dissemination, forwarding, printing, or copying of
> > this e-mail is strictly prohibited. If you received this e-mail in error,
> > please return the e-mail to the sender, delete it from your computer, and
> > destroy any printed copy of it.
>
> Now deleted.
You and everyone on this mailing list are intended recipients, so
there is no need to delete.
Please help port this commit to stable branches 5.9 and up to resolve
the compilation issue Bin reported.
https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git/commit/?id=fad0a16130b6b4eb0958f4142d82509f90efdcbd
Thanks,
Justin
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 5.10.y] scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan()
2025-04-04 20:23 ` Justin Tee
@ 2025-04-05 7:34 ` Greg KH
0 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2025-04-05 7:34 UTC (permalink / raw)
To: Justin Tee
Cc: Justin Tee, Bin Lan, stable, bass, islituo, loberman,
martin.petersen
On Fri, Apr 04, 2025 at 01:23:49PM -0700, Justin Tee wrote:
> Hi Greg,
>
> > > This electronic communication and the information and any files transmitted
> > > with it, or attached to it, are confidential and are intended solely for
> > > the use of the individual or entity to whom it is addressed and may contain
> > > information that is confidential, legally privileged, protected by privacy
> > > laws, or otherwise restricted from disclosure to anyone else. If you are
> > > not the intended recipient or the person responsible for delivering the
> > > e-mail to the intended recipient, you are hereby notified that any use,
> > > copying, distributing, dissemination, forwarding, printing, or copying of
> > > this e-mail is strictly prohibited. If you received this e-mail in error,
> > > please return the e-mail to the sender, delete it from your computer, and
> > > destroy any printed copy of it.
> >
> > Now deleted.
>
> You and everyone on this mailing list are intended recipients, so
> there is no need to delete.
Not true, you said this is "confidential" and according to our legal
advivice, that is not allowed to be on a change for a contribution to
Linux. Please remove this type of message if you wish to contribute to
open source projects.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-04-05 7:35 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-03 3:29 [PATCH 5.15.y] scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan() bin.lan.cn
2025-04-03 3:29 ` [PATCH 5.10.y] " bin.lan.cn
2025-04-03 10:52 ` Bin Lan
2025-04-03 20:58 ` Justin Tee
2025-04-04 6:28 ` Greg KH
2025-04-04 20:23 ` Justin Tee
2025-04-05 7:34 ` Greg KH
2025-04-03 15:39 ` Sasha Levin
2025-04-03 15:38 ` [PATCH 5.15.y] " Sasha Levin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox