Re: [PATCH] qla2xxx: Fix endianness of task management response code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2012-09-18 at 15:10 -0700, Roland Dreier wrote:
> From: Roland Dreier <roland@xxxxxxxxxxxxxxx>
> 
> The qla2xxx firmware actually expects the task management response
> code in a CTIO IOCB with SCSI status mode 1 to be in little-endian
> byte order, ie the response code should be the first byte in the
> sense_data[] array.

Is this also true on Big Endian Hardware?  Because the fix you have
assumes that the TIO IOCB with SCSI status mode 1 should be CPU
endian ... that doesn't look right since this is passed directly over
the PCI bus (and the PCI bus is little endian), so shouldn't the correct
fix be to replace cpu_to_be32 with cpu_to_le32?

James

>   The old code erroneously byte-swapped the
> response code, which puts it in the wrong place on the wire and leads
> to initiators thinking every task management request succeeds (since
> they see 0 in the byte where they look for the response code).
> 
> Cc: Chad Dupuis <chad.dupuis@xxxxxxxxxx>
> Cc: Arun Easi <arun.easi@xxxxxxxxxx>
> Signed-off-by: Roland Dreier <roland@xxxxxxxxxxxxxxx>
> ---
>  drivers/scsi/qla2xxx/qla_target.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
> index 5b30132..41b74ba 100644
> --- a/drivers/scsi/qla2xxx/qla_target.c
> +++ b/drivers/scsi/qla2xxx/qla_target.c
> @@ -1403,7 +1403,7 @@ static void qlt_24xx_send_task_mgmt_ctio(struct scsi_qla_host *ha,
>  	ctio->u.status1.scsi_status =
>  	    __constant_cpu_to_le16(SS_RESPONSE_INFO_LEN_VALID);
>  	ctio->u.status1.response_len = __constant_cpu_to_le16(8);
> -	((uint32_t *)ctio->u.status1.sense_data)[0] = cpu_to_be32(resp_code);
> +	ctio->u.status1.sense_data[0] = resp_code;
>  
>  	qla2x00_start_iocbs(ha, ha->req);
>  }



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


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux