[SCSI] esas2r: Fixes for big-endian platforms
In esas2r_format_init_msg(), sgl_page_size and epoch_time params are converted to little endian and the firmware version read from the hba is converted to cpu endianess. In esas2r_rq_init_request, correct and simplify the construction of the SCSI handle. These fixes are the result of testing on a PPC64 machine. Signed-off-by: Bradley Grove <bgrove@attotech.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:

committed by
James Bottomley

parent
9588d24e36
commit
8e65e2f07c
@@ -1235,8 +1235,8 @@ static bool esas2r_format_init_msg(struct esas2r_adapter *a,
|
||||
0,
|
||||
NULL);
|
||||
ci = (struct atto_vda_cfg_init *)&rq->vrq->cfg.data.init;
|
||||
ci->sgl_page_size = sgl_page_size;
|
||||
ci->epoch_time = now.tv_sec;
|
||||
ci->sgl_page_size = cpu_to_le32(sgl_page_size);
|
||||
ci->epoch_time = cpu_to_le32(now.tv_sec);
|
||||
rq->flags |= RF_FAILURE_OK;
|
||||
a->init_msg = ESAS2R_INIT_MSG_INIT;
|
||||
break;
|
||||
@@ -1246,12 +1246,15 @@ static bool esas2r_format_init_msg(struct esas2r_adapter *a,
|
||||
if (rq->req_stat == RS_SUCCESS) {
|
||||
u32 major;
|
||||
u32 minor;
|
||||
u16 fw_release;
|
||||
|
||||
a->fw_version = le16_to_cpu(
|
||||
rq->func_rsp.cfg_rsp.vda_version);
|
||||
a->fw_build = rq->func_rsp.cfg_rsp.fw_build;
|
||||
major = LOBYTE(rq->func_rsp.cfg_rsp.fw_release);
|
||||
minor = HIBYTE(rq->func_rsp.cfg_rsp.fw_release);
|
||||
fw_release = le16_to_cpu(
|
||||
rq->func_rsp.cfg_rsp.fw_release);
|
||||
major = LOBYTE(fw_release);
|
||||
minor = HIBYTE(fw_release);
|
||||
a->fw_version += (major << 16) + (minor << 24);
|
||||
} else {
|
||||
esas2r_hdebug("FAILED");
|
||||
|
Reference in New Issue
Block a user