On 10/22/19 1:44 AM, Finn Thain wrote:
> 
>> diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c 
>> b/drivers/scsi/megaraid/megaraid_sas_base.c
>> index c40fbea06cc5..649f9610ca72 100644
>> --- a/drivers/scsi/megaraid/megaraid_sas_base.c
>> +++ b/drivers/scsi/megaraid/megaraid_sas_base.c
>> @@ -1,3 +1,4 @@
>> +
>>  // SPDX-License-Identifier: GPL-2.0-or-later
>>  /*
>>   *  Linux MegaRAID driver for SAS based RAID controllers
> 
> Typo?
> 
Indeed. Will fix it up.

>> index 59443e0184fd..d6ecb773c512 100644
>> --- a/drivers/scsi/scsi.c
>> +++ b/drivers/scsi/scsi.c
>> @@ -203,8 +203,8 @@ void scsi_finish_command(struct scsi_cmnd *cmd)
>>       * If we have valid sense information, then some kind of recovery
>>       * must have taken place.  Make a note of this.
>>       */
>> -    if (SCSI_SENSE_VALID(cmd))
>> -            cmd->result |= (DRIVER_SENSE << 24);
>> +    if (SCSI_SENSE_VALID(cmd) && status_byte(cmd->result) == SAM_STAT_GOOD)
>> +            set_status_byte(cmd, SAM_STAT_CHECK_CONDITION);
> 
> This means that a REQUEST SENSE command can never result in SAM_STAT_GOOD, 
> right? Are there implications for higher layers?
> 
Hmm. Blasted REQUEST SENSE.
Indeed a REQUEST SENSE command should never return with CHECK_CONDITION.
But then a REQUEST SENSE command returns with the sense code in the
payload, which equally is not something which is expected.

I'll be having a look here.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                   Teamlead Storage & Networking
h...@suse.de                                      +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 247165 (AG München), GF: Felix Imendörffer

Reply via email to