On Tue, Jan 31, 2017 at 2:55 PM, Hannes Reinecke <hare@xxxxxxx> wrote: > No functional change. > > Signed-off-by: Hannes Reinecke <hare@xxxxxxxx> > --- > 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 >