[SCSI] megaraid_sas_fusion: correctly pass queue info pointer
authorHannes Reinecke <hare@suse.de>
Thu, 16 Jan 2014 10:25:33 +0000 (11:25 +0100)
committerJames Bottomley <JBottomley@Parallels.com>
Sat, 15 Mar 2014 17:19:17 +0000 (10:19 -0700)
The pointer to the queue info structure is potentially
a 64-bit value, so we should be using the correct macros
to set the values in the init frame.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Acked-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/megaraid/megaraid_sas_fusion.c

index f6555921fd7aa111eedc958d580eed9bbf9b848c..9a98bfccc42d76832458c04bd2250cbb40e4b559 100644 (file)
@@ -644,7 +644,10 @@ megasas_ioc_init_fusion(struct megasas_instance *instance)
        /* Convert capability to LE32 */
        cpu_to_le32s((u32 *)&init_frame->driver_operations.mfi_capabilities);
 
-       init_frame->queue_info_new_phys_addr_lo = cpu_to_le32((u32)ioc_init_handle);
+       init_frame->queue_info_new_phys_addr_hi =
+               cpu_to_le32(upper_32_bits(ioc_init_handle));
+       init_frame->queue_info_new_phys_addr_lo =
+               cpu_to_le32(lower_32_bits(ioc_init_handle));
        init_frame->data_xfer_len = cpu_to_le32(sizeof(struct MPI2_IOC_INIT_REQUEST));
 
        req_desc =