From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:46563) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SoTCQ-0004c6-Dw for qemu-devel@nongnu.org; Tue, 10 Jul 2012 01:41:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SoTCO-0001vR-EU for qemu-devel@nongnu.org; Tue, 10 Jul 2012 01:41:25 -0400 Received: from v220110690675601.yourvserver.net ([78.47.199.172]:46855) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SoTCO-0001v8-88 for qemu-devel@nongnu.org; Tue, 10 Jul 2012 01:41:24 -0400 From: Stefan Weil Date: Tue, 10 Jul 2012 07:41:20 +0200 Message-Id: <1341898880-15080-1-git-send-email-sw@weilnetz.de> Subject: [Qemu-devel] [PATCH] megasas: Fix compilation for 32 bit hosts List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Hannes Reinecke , Paolo Bonzini , Stefan Weil , qemu-devel@nongnu.org, Alexander Graf Cc: Hannes Reinecke Signed-off-by: Stefan Weil --- default-configs/pci.mak | 4 ++++ hw/megasas.c | 13 +++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/default-configs/pci.mak b/default-configs/pci.mak index 9d3e1db..120b69d 100644 --- a/default-configs/pci.mak +++ b/default-configs/pci.mak @@ -5,6 +5,10 @@ CONFIG_USB_UHCI=y CONFIG_USB_OHCI=y CONFIG_USB_EHCI=y CONFIG_USB_XHCI=y + +# RAID adapter +CONFIG_MEGASAS_SCSI_PCI=y + CONFIG_NE2000_PCI=y CONFIG_EEPRO100_PCI=y CONFIG_PCNET_PCI=y diff --git a/hw/megasas.c b/hw/megasas.c index b48836f..26cf118 100644 --- a/hw/megasas.c +++ b/hw/megasas.c @@ -372,12 +372,13 @@ static uint64_t megasas_fw_time(void) return bcd_time; } -static uint64_t megasas_gen_sas_addr(uint64_t id) +static uint64_t megasas_gen_sas_addr(void *p) { + uint64_t id = (uintptr_t)p; uint64_t addr; addr = 0x5001a4aULL << 36; - addr |= id & 0xfffffffff; + addr |= id & 0xfffffffffULL; return addr; } @@ -672,7 +673,7 @@ static int megasas_ctrl_get_info(MegasasState *s, MegasasCmd *cmd) info.host.type = MFI_INFO_HOST_PCIX; info.device.type = MFI_INFO_DEV_SAS3G; info.device.port_count = 2; - info.device.port_addr[0] = cpu_to_le64(megasas_gen_sas_addr((uint64_t)s)); + info.device.port_addr[0] = cpu_to_le64(megasas_gen_sas_addr(s)); memcpy(info.product_name, "MegaRAID SAS 8708EM2", 20); snprintf(info.serial_number, 32, "QEMU%08lx", @@ -761,7 +762,7 @@ static int megasas_mfc_get_defaults(MegasasState *s, MegasasCmd *cmd) return MFI_STAT_INVALID_PARAMETER; } - info.sas_addr = cpu_to_le64(megasas_gen_sas_addr((uint64_t)s)); + info.sas_addr = cpu_to_le64(megasas_gen_sas_addr(s)); info.stripe_size = 3; info.flush_time = 4; info.background_rate = 30; @@ -891,7 +892,7 @@ static int megasas_dcmd_pd_get_list(MegasasState *s, MegasasCmd *cmd) info.addr[num_pd_disks].scsi_dev_type = sdev->type; info.addr[num_pd_disks].connect_port_bitmap = 0x1; info.addr[num_pd_disks].sas_addr[0] = - cpu_to_le64(megasas_gen_sas_addr((uint64_t)sdev)); + cpu_to_le64(megasas_gen_sas_addr(sdev)); num_pd_disks++; offset += sizeof(struct mfi_pd_address); } @@ -994,7 +995,7 @@ static int megasas_pd_get_info_submit(SCSIDevice *sdev, int lun, info->slot_number = (sdev->id & 0xFF); info->path_info.count = 1; info->path_info.sas_addr[0] = - cpu_to_le64(megasas_gen_sas_addr((uint64_t)sdev)); + cpu_to_le64(megasas_gen_sas_addr(sdev)); info->connected_port_bitmap = 0x1; info->device_speed = 1; info->link_speed = 1; -- 1.7.0.4