Re: [PATCH 04/10] mpt3sas: separate out _base_recovery_check()

2017-02-16 Thread Hannes Reinecke
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(>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()

2017-02-16 Thread Sreekanth Reddy
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(>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(>scsi_lookup[i].tracker_list, >free_list);
> spin_unlock_irqrestore(>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(>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()

2017-02-07 Thread Christoph Hellwig
Looks fine,

Reviewed-by: Christoph Hellwig