aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2009-12-16 08:21:45 -0500
committerJames Bottomley <James.Bottomley@suse.de>2010-02-08 19:19:38 -0500
commit6846e75cdfa76c6609ac0381a6739c9f4af8fd3b (patch)
tree7bec8c4e35f1bf73ebe34dc55fe89d6b9653f242 /drivers/scsi/mpt2sas
parentb2ff36ba19dec02b05d3e26e36923b71ab64f34a (diff)
[SCSI] mpt2sas: User resource_size_t instead of unsigned long
Use resource_size_t to define the type resource for the system interface register set. The existing implementation was using "unsigned long" which would be 32 bit in 32 bit OS. If 32 bit OS is using 64 bit physical address space for the system interface register set, we need to shift to using resource_size_t which takes care of physical address space. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Reviewed-by: Eric Moore <eric.moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/mpt2sas')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.c13
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.h4
2 files changed, 9 insertions, 8 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c
index 89d02401b9ec..bbd4f713d332 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_base.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_base.c
@@ -1222,6 +1222,8 @@ mpt2sas_base_map_resources(struct MPT2SAS_ADAPTER *ioc)
1222 u32 memap_sz; 1222 u32 memap_sz;
1223 u32 pio_sz; 1223 u32 pio_sz;
1224 int i, r = 0; 1224 int i, r = 0;
1225 u64 pio_chip = 0;
1226 u64 chip_phys = 0;
1225 1227
1226 dinitprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s\n", 1228 dinitprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s\n",
1227 ioc->name, __func__)); 1229 ioc->name, __func__));
@@ -1255,12 +1257,13 @@ mpt2sas_base_map_resources(struct MPT2SAS_ADAPTER *ioc)
1255 if (pci_resource_flags(pdev, i) & PCI_BASE_ADDRESS_SPACE_IO) { 1257 if (pci_resource_flags(pdev, i) & PCI_BASE_ADDRESS_SPACE_IO) {
1256 if (pio_sz) 1258 if (pio_sz)
1257 continue; 1259 continue;
1258 ioc->pio_chip = pci_resource_start(pdev, i); 1260 pio_chip = (u64)pci_resource_start(pdev, i);
1259 pio_sz = pci_resource_len(pdev, i); 1261 pio_sz = pci_resource_len(pdev, i);
1260 } else { 1262 } else {
1261 if (memap_sz) 1263 if (memap_sz)
1262 continue; 1264 continue;
1263 ioc->chip_phys = pci_resource_start(pdev, i); 1265 ioc->chip_phys = pci_resource_start(pdev, i);
1266 chip_phys = (u64)ioc->chip_phys;
1264 memap_sz = pci_resource_len(pdev, i); 1267 memap_sz = pci_resource_len(pdev, i);
1265 ioc->chip = ioremap(ioc->chip_phys, memap_sz); 1268 ioc->chip = ioremap(ioc->chip_phys, memap_sz);
1266 if (ioc->chip == NULL) { 1269 if (ioc->chip == NULL) {
@@ -1280,10 +1283,10 @@ mpt2sas_base_map_resources(struct MPT2SAS_ADAPTER *ioc)
1280 printk(MPT2SAS_INFO_FMT "%s: IRQ %d\n", 1283 printk(MPT2SAS_INFO_FMT "%s: IRQ %d\n",
1281 ioc->name, ((ioc->msix_enable) ? "PCI-MSI-X enabled" : 1284 ioc->name, ((ioc->msix_enable) ? "PCI-MSI-X enabled" :
1282 "IO-APIC enabled"), ioc->pci_irq); 1285 "IO-APIC enabled"), ioc->pci_irq);
1283 printk(MPT2SAS_INFO_FMT "iomem(0x%lx), mapped(0x%p), size(%d)\n", 1286 printk(MPT2SAS_INFO_FMT "iomem(0x%016llx), mapped(0x%p), size(%d)\n",
1284 ioc->name, ioc->chip_phys, ioc->chip, memap_sz); 1287 ioc->name, (unsigned long long)chip_phys, ioc->chip, memap_sz);
1285 printk(MPT2SAS_INFO_FMT "ioport(0x%lx), size(%d)\n", 1288 printk(MPT2SAS_INFO_FMT "ioport(0x%016llx), size(%d)\n",
1286 ioc->name, ioc->pio_chip, pio_sz); 1289 ioc->name, (unsigned long long)pio_chip, pio_sz);
1287 1290
1288 return 0; 1291 return 0;
1289 1292
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.h b/drivers/scsi/mpt2sas/mpt2sas_base.h
index bb4f14656afa..12fa18be77e1 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_base.h
+++ b/drivers/scsi/mpt2sas/mpt2sas_base.h
@@ -464,7 +464,6 @@ typedef void (*MPT_ADD_SGE)(void *paddr, u32 flags_length, dma_addr_t dma_addr);
464 * @pdev: pci pdev object 464 * @pdev: pci pdev object
465 * @chip: memory mapped register space 465 * @chip: memory mapped register space
466 * @chip_phys: physical addrss prior to mapping 466 * @chip_phys: physical addrss prior to mapping
467 * @pio_chip: I/O mapped register space
468 * @logging_level: see mpt2sas_debug.h 467 * @logging_level: see mpt2sas_debug.h
469 * @fwfault_debug: debuging FW timeouts 468 * @fwfault_debug: debuging FW timeouts
470 * @ir_firmware: IR firmware present 469 * @ir_firmware: IR firmware present
@@ -587,8 +586,7 @@ struct MPT2SAS_ADAPTER {
587 char tmp_string[MPT_STRING_LENGTH]; 586 char tmp_string[MPT_STRING_LENGTH];
588 struct pci_dev *pdev; 587 struct pci_dev *pdev;
589 Mpi2SystemInterfaceRegs_t __iomem *chip; 588 Mpi2SystemInterfaceRegs_t __iomem *chip;
590 unsigned long chip_phys; 589 resource_size_t chip_phys;
591 unsigned long pio_chip;
592 int logging_level; 590 int logging_level;
593 int fwfault_debug; 591 int fwfault_debug;
594 u8 ir_firmware; 592 u8 ir_firmware;