Message ID | 20221122010421.3799681-12-paulmck@kernel.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | None | expand |
On 11/21/22 17:04, Paul E. McKenney wrote: > diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c > index 6995c89792300..634672e67c81f 100644 > --- a/drivers/scsi/scsi_error.c > +++ b/drivers/scsi/scsi_error.c > @@ -312,7 +312,7 @@ void scsi_eh_scmd_add(struct scsi_cmnd *scmd) > * Ensure that all tasks observe the host state change before the > * host_failed change. > */ > - call_rcu(&scmd->rcu, scsi_eh_inc_host_failed); > + call_rcu_flush(&scmd->rcu, scsi_eh_inc_host_failed); > } Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Paul, > Therefore, make scsi_eh_scmd_add() use call_rcu_flush() in order to > revert to the old behavior. [...] > diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c > index 6995c89792300..634672e67c81f 100644 > --- a/drivers/scsi/scsi_error.c > +++ b/drivers/scsi/scsi_error.c > @@ -312,7 +312,7 @@ void scsi_eh_scmd_add(struct scsi_cmnd *scmd) > * Ensure that all tasks observe the host state change before the > * host_failed change. > */ > - call_rcu(&scmd->rcu, scsi_eh_inc_host_failed); > + call_rcu_flush(&scmd->rcu, scsi_eh_inc_host_failed); > } > > /** OK with me. Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
On Fri, Nov 25, 2022 at 04:11:26PM -0800, Bart Van Assche wrote: > On 11/21/22 17:04, Paul E. McKenney wrote: > > diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c > > index 6995c89792300..634672e67c81f 100644 > > --- a/drivers/scsi/scsi_error.c > > +++ b/drivers/scsi/scsi_error.c > > @@ -312,7 +312,7 @@ void scsi_eh_scmd_add(struct scsi_cmnd *scmd) > > * Ensure that all tasks observe the host state change before the > > * host_failed change. > > */ > > - call_rcu(&scmd->rcu, scsi_eh_inc_host_failed); > > + call_rcu_flush(&scmd->rcu, scsi_eh_inc_host_failed); > > } > > Reviewed-by: Bart Van Assche <bvanassche@acm.org> Thank you both, I will apply these on the next rebase. Thanx, Paul
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index 6995c89792300..634672e67c81f 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c @@ -312,7 +312,7 @@ void scsi_eh_scmd_add(struct scsi_cmnd *scmd) * Ensure that all tasks observe the host state change before the * host_failed change. */ - call_rcu(&scmd->rcu, scsi_eh_inc_host_failed); + call_rcu_flush(&scmd->rcu, scsi_eh_inc_host_failed); } /**