aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas/mpt2sas_base.c
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/mpt2sas_base.c
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/mpt2sas_base.c')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.c13
1 files changed, 8 insertions, 5 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