Re: [PATCH 04/10] mpt3sas: separate out _base_recovery_check()
On 02/16/2017 10:53 AM, Sreekanth Reddy wrote: > On Tue, Jan 31, 2017 at 2:55 PM, Hannes Reinecke wrote: >> No functional change. >> >> Signed-off-by: Hannes Reinecke >> --- >> drivers/scsi/mpt3sas/mpt3sas_base.c | 23 ++- >> 1 file changed, 14 insertions(+), 9 deletions(-) >> >> diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c >> b/drivers/scsi/mpt3sas/mpt3sas_base.c >> index 120b317..dd14596 100644 >> --- a/drivers/scsi/mpt3sas/mpt3sas_base.c >> +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c >> @@ -2366,6 +2366,19 @@ static int mpt3sas_remove_dead_ioc_func(void *arg) >> } >> >> static void >> +_base_recovery_check(struct MPT3SAS_ADAPTER *ioc) >> +{ >> + /* >> +* See _wait_for_commands_to_complete() call with regards to this >> code. >> +*/ >> + if (ioc->shost_recovery && ioc->pending_io_count) { >> + if (ioc->pending_io_count == 1) >> + wake_up(&ioc->reset_wq); >> + ioc->pending_io_count = 0; > > I think here we should reduce the pending_io_count by one instead of > assigning it to zero in-order to have same behavior as before. > Ouch, indeed. My fault. Will be fixing it up. Cheers, Hannes -- Dr. Hannes ReineckeTeamlead Storage & Networking h...@suse.de +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg)
Re: [PATCH 04/10] mpt3sas: separate out _base_recovery_check()
On Tue, Jan 31, 2017 at 2:55 PM, Hannes Reinecke wrote: > No functional change. > > Signed-off-by: Hannes Reinecke > --- > drivers/scsi/mpt3sas/mpt3sas_base.c | 23 ++- > 1 file changed, 14 insertions(+), 9 deletions(-) > > diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c > b/drivers/scsi/mpt3sas/mpt3sas_base.c > index 120b317..dd14596 100644 > --- a/drivers/scsi/mpt3sas/mpt3sas_base.c > +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c > @@ -2366,6 +2366,19 @@ static int mpt3sas_remove_dead_ioc_func(void *arg) > } > > static void > +_base_recovery_check(struct MPT3SAS_ADAPTER *ioc) > +{ > + /* > +* See _wait_for_commands_to_complete() call with regards to this > code. > +*/ > + if (ioc->shost_recovery && ioc->pending_io_count) { > + if (ioc->pending_io_count == 1) > + wake_up(&ioc->reset_wq); > + ioc->pending_io_count = 0; I think here we should reduce the pending_io_count by one instead of assigning it to zero in-order to have same behavior as before. Thanks, Sreekanth > + } > +} > + > +static void > _dechain_st(struct MPT3SAS_ADAPTER *ioc, struct scsiio_tracker *st) > { > struct chain_tracker *chain_req; > @@ -2402,15 +2415,7 @@ static int mpt3sas_remove_dead_ioc_func(void *arg) > list_add(&ioc->scsi_lookup[i].tracker_list, &ioc->free_list); > spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags); > > - /* > -* See _wait_for_commands_to_complete() call with regards > -* to this code. > -*/ > - if (ioc->shost_recovery && ioc->pending_io_count) { > - if (ioc->pending_io_count == 1) > - wake_up(&ioc->reset_wq); > - ioc->pending_io_count--; > - } > + _base_recovery_check(ioc); > return; > } else if (smid < ioc->internal_smid) { > /* hi-priority */ > -- > 1.8.5.6 >
Re: [PATCH 04/10] mpt3sas: separate out _base_recovery_check()
Looks fine, Reviewed-by: Christoph Hellwig