diff options
Diffstat (limited to 'drivers/scsi/scsi.c')
| -rw-r--r-- | drivers/scsi/scsi.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index 2c0d0ec8150b..3b1ea34e1f5a 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -1070,8 +1070,8 @@ EXPORT_SYMBOL_GPL(scsi_get_vpd_page);   * @opcode:	opcode for command to look up   *   * Uses the REPORT SUPPORTED OPERATION CODES to look up the given - * opcode. Returns 0 if RSOC fails or if the command opcode is - * unsupported. Returns 1 if the device claims to support the command. + * opcode. Returns -EINVAL if RSOC fails, 0 if the command opcode is + * unsupported and 1 if the device claims to support the command.   */  int scsi_report_opcode(struct scsi_device *sdev, unsigned char *buffer,  		       unsigned int len, unsigned char opcode) @@ -1081,7 +1081,7 @@ int scsi_report_opcode(struct scsi_device *sdev, unsigned char *buffer,  	int result;  	if (sdev->no_report_opcodes || sdev->scsi_level < SCSI_SPC_3) -		return 0; +		return -EINVAL;  	memset(cmd, 0, 16);  	cmd[0] = MAINTENANCE_IN; @@ -1097,7 +1097,7 @@ int scsi_report_opcode(struct scsi_device *sdev, unsigned char *buffer,  	if (result && scsi_sense_valid(&sshdr) &&  	    sshdr.sense_key == ILLEGAL_REQUEST &&  	    (sshdr.asc == 0x20 || sshdr.asc == 0x24) && sshdr.ascq == 0x00) -		return 0; +		return -EINVAL;  	if ((buffer[1] & 3) == 3) /* Command supported */  		return 1;  | 
