From a788fbc9aca2fc91ea186a9d2b02aba5c90d6de3 Mon Sep 17 00:00:00 2001 From: Richard A Lary Date: Fri, 12 Mar 2010 15:27:06 -0800 Subject: [PATCH] --- yaml --- r: 195551 b: refs/heads/master c: fc193172e63af2c749e198816a1ee694dd6395e6 h: refs/heads/master i: 195549: 5b99db8ed08baa43dbc431c07e49dbb109d65bb5 195547: 24ba4da0a6bdb0cdc48e3d96da92c9b3457af5b9 195543: 97887d265a59a97397a1af69c41ec4b932ce8747 195535: e3e6e81b31a4b0a0e709c8ac3e04d5023382347f 195519: 45faa97225330aa9bc1ec72728ddf9bc8aa0fa6c v: v3 --- [refs] | 2 +- trunk/drivers/scsi/mpt2sas/mpt2sas_base.c | 23 +++++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index e868496fe0ab..797158016dc4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4644efabde172808c0a8b6e3f17e4c204a4e52e7 +refs/heads/master: fc193172e63af2c749e198816a1ee694dd6395e6 diff --git a/trunk/drivers/scsi/mpt2sas/mpt2sas_base.c b/trunk/drivers/scsi/mpt2sas/mpt2sas_base.c index da4bfbf95a7a..fb886d099baf 100644 --- a/trunk/drivers/scsi/mpt2sas/mpt2sas_base.c +++ b/trunk/drivers/scsi/mpt2sas/mpt2sas_base.c @@ -1253,7 +1253,7 @@ mpt2sas_base_map_resources(struct MPT2SAS_ADAPTER *ioc) } for (i = 0, memap_sz = 0, pio_sz = 0 ; i < DEVICE_COUNT_RESOURCE; i++) { - if (pci_resource_flags(pdev, i) & PCI_BASE_ADDRESS_SPACE_IO) { + if (pci_resource_flags(pdev, i) & IORESOURCE_IO) { if (pio_sz) continue; pio_chip = (u64)pci_resource_start(pdev, i); @@ -1261,15 +1261,18 @@ mpt2sas_base_map_resources(struct MPT2SAS_ADAPTER *ioc) } else { if (memap_sz) continue; - ioc->chip_phys = pci_resource_start(pdev, i); - chip_phys = (u64)ioc->chip_phys; - memap_sz = pci_resource_len(pdev, i); - ioc->chip = ioremap(ioc->chip_phys, memap_sz); - if (ioc->chip == NULL) { - printk(MPT2SAS_ERR_FMT "unable to map adapter " - "memory!\n", ioc->name); - r = -EINVAL; - goto out_fail; + /* verify memory resource is valid before using */ + if (pci_resource_flags(pdev, i) & IORESOURCE_MEM) { + ioc->chip_phys = pci_resource_start(pdev, i); + chip_phys = (u64)ioc->chip_phys; + memap_sz = pci_resource_len(pdev, i); + ioc->chip = ioremap(ioc->chip_phys, memap_sz); + if (ioc->chip == NULL) { + printk(MPT2SAS_ERR_FMT "unable to map " + "adapter memory!\n", ioc->name); + r = -EINVAL; + goto out_fail; + } } } }