* [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.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
* 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.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
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; as well as URLs for NNTP newsgroup(s).