[SCSI] pm8001: fix endian issue with code optimization.
Data type of the 'tag' field of 'fw_flash_Update_resp' should be __le32. Data type of 'pHeader' should be __le32. Remove 2nd cast to 'piomb'. Signed-off-by: Santosh Nayak <santoshprasadnayak@gmail.com> Acked-by: Jack Wang <jack_wang@usish.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
c6f5c93098
commit
fd00f7c103
@ -3357,7 +3357,7 @@ mpi_fw_flash_update_resp(struct pm8001_hba_info *pm8001_ha, void *piomb)
|
||||
struct fw_control_ex fw_control_context;
|
||||
struct fw_flash_Update_resp *ppayload =
|
||||
(struct fw_flash_Update_resp *)(piomb + 4);
|
||||
u32 tag = ppayload->tag;
|
||||
u32 tag = le32_to_cpu(ppayload->tag);
|
||||
struct pm8001_ccb_info *ccb = &pm8001_ha->ccb_info[tag];
|
||||
status = le32_to_cpu(ppayload->status);
|
||||
memcpy(&fw_control_context,
|
||||
@ -3703,8 +3703,8 @@ static int mpi_hw_event(struct pm8001_hba_info *pm8001_ha, void* piomb)
|
||||
*/
|
||||
static void process_one_iomb(struct pm8001_hba_info *pm8001_ha, void *piomb)
|
||||
{
|
||||
u32 pHeader = (u32)*(u32 *)piomb;
|
||||
u8 opc = (u8)(pHeader & 0xFFF);
|
||||
__le32 pHeader = *(__le32 *)piomb;
|
||||
u8 opc = (u8)((le32_to_cpu(pHeader)) & 0xFFF);
|
||||
|
||||
PM8001_MSG_DBG(pm8001_ha, pm8001_printk("process_one_iomb:"));
|
||||
|
||||
|
@ -599,7 +599,7 @@ struct fw_flash_Update_req {
|
||||
*
|
||||
*/
|
||||
struct fw_flash_Update_resp {
|
||||
dma_addr_t tag;
|
||||
__le32 tag;
|
||||
__le32 status;
|
||||
u32 reserved[13];
|
||||
} __attribute__((packed, aligned(4)));
|
||||
|
Loading…
Reference in New Issue
Block a user