On Tue, Jan 31, 2017 at 2:55 PM, Hannes Reinecke <[email protected]> wrote:
> No functional change.
>
> Signed-off-by: Hannes Reinecke <[email protected]>
> ---
> 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
>