Hi,

On 09/13/2014 09:31 PM, Sergei Shtylyov wrote:
> Hello.
> 
> On 9/13/2014 1:26 PM, Hans de Goede wrote:
> 
>> The data urbs are all killed before calling zap_pending, and their completion
>> handler should have cleared their inflight flag.
> 
>> Do not 0 the data inflight flags, and add a check for try_complete 
>> succeeding,
>> as it should always succeed when called from zap_pending.
> 
>> Signed-off-by: Hans de Goede <hdego...@redhat.com>
>> ---
>>   drivers/usb/storage/uas.c | 10 +++++-----
>>   1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
>> index 08edb6b..85bbc1d 100644
>> --- a/drivers/usb/storage/uas.c
>> +++ b/drivers/usb/storage/uas.c
>> @@ -145,6 +145,7 @@ static void uas_zap_pending(struct uas_dev_info 
>> *devinfo, int result)
>>       struct uas_cmd_info *cmdinfo;
>>       struct uas_cmd_info *temp;
>>       unsigned long flags;
>> +    int err;
> 
>    Er, I don't see why this variable is necessary.
> 
> [...]
>> @@ -152,12 +153,11 @@ static void uas_zap_pending(struct uas_dev_info 
>> *devinfo, int result)
>>           struct scsi_cmnd *cmnd = container_of(scp, struct scsi_cmnd,
>>                                 SCp);
>>           uas_log_cmd_state(cmnd, __func__);
>> -        /* all urbs are killed, clear inflight bits */
>> -        cmdinfo->state &= ~(COMMAND_INFLIGHT |
>> -                    DATA_IN_URB_INFLIGHT |
>> -                    DATA_OUT_URB_INFLIGHT);
>> +        /* Sense urbs were killed, clear COMMAND_INFLIGHT manually */
>> +        cmdinfo->state &= ~COMMAND_INFLIGHT;
>>           cmnd->result = result << 16;
>> -        uas_try_complete(cmnd, __func__);
>> +        err = uas_try_complete(cmnd, __func__);
>> +        WARN_ON(err != 0);
> 
>    Why not:
> 
>         WARN_ON(uas_try_complete(cmnd, __func__));
> 

This was discussed already during v1 of this patch-set, WARN_ON may
not have a side-effect, as it may be defined as an empty macro.

Regards,

Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to