Patchwork pci: use pci_ioremap_bar() in drivers/net

login
register
mail settings
Submitter Arjan van de Ven
Date Oct. 21, 2008, 4:42 a.m.
Message ID <20081020214239.398f1838@infradead.org>
Download mbox | patch
Permalink /patch/5185/
State Accepted
Delegated to: Jeff Garzik
Headers show

Comments

Arjan van de Ven - Oct. 21, 2008, 4:42 a.m.
Now that Linus added the pci_ioremap_bar() helper macro, this can go through


From: Arjan van de Ven <arjan@linux.intel.com>
Date: Sun, 28 Sep 2008 16:17:08 -0700
Subject: [PATCH] pci: use pci_ioremap_bar() in drivers/net

Use the newly introduced pci_ioremap_bar() function in drivers/net.
pci_ioremap_bar() just takes a pci device and a bar number, with the goal
of making it really hard to get wrong, while also having a central place
to stick sanity checks.

CC: netdev@vger.kernel.org
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
---
 drivers/net/bnx2x_main.c                 |    3 +--
 drivers/net/e1000/e1000_main.c           |    7 ++-----
 drivers/net/epic100.c                    |    2 +-
 drivers/net/ixgb/ixgb_main.c             |    3 +--
 drivers/net/qla3xxx.c                    |    4 +---
 drivers/net/s2io.c                       |    6 ++----
 drivers/net/wan/dscc4.c                  |    3 +--
 drivers/net/wan/pc300too.c               |    2 +-
 drivers/net/wan/pci200syn.c              |    2 +-
 drivers/net/wireless/hostap/hostap_pci.c |    2 +-
 drivers/net/wireless/ipw2200.c           |    2 +-
 drivers/net/wireless/rt2x00/rt2x00pci.c  |    3 +--
 12 files changed, 14 insertions(+), 25 deletions(-)
Eliezer Tamir - Oct. 22, 2008, 7:05 a.m.
BNX2X devices have two BARs.
You might want to convert both.

Cheers,
Eliezer

On Tue, Oct 21, 2008 at 6:42 AM, Arjan van de Ven <arjan@infradead.org> wrote:
> Now that Linus added the pci_ioremap_bar() helper macro, this can go through
>
>
> From: Arjan van de Ven <arjan@linux.intel.com>
> Date: Sun, 28 Sep 2008 16:17:08 -0700
> Subject: [PATCH] pci: use pci_ioremap_bar() in drivers/net
>
> Use the newly introduced pci_ioremap_bar() function in drivers/net.
> pci_ioremap_bar() just takes a pci device and a bar number, with the goal
> of making it really hard to get wrong, while also having a central place
> to stick sanity checks.
>
> CC: netdev@vger.kernel.org
> Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
> ---
>  drivers/net/bnx2x_main.c                 |    3 +--

...
>
> diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
> index fce7451..8f7c3e9 100644
> --- a/drivers/net/bnx2x_main.c
> +++ b/drivers/net/bnx2x_main.c
> @@ -10090,8 +10090,7 @@ static int __devinit bnx2x_init_dev(struct pci_dev *pdev,
>
>        dev->irq = pdev->irq;
>
> -       bp->regview = ioremap_nocache(dev->base_addr,
> -                                     pci_resource_len(pdev, 0));
> +       bp->regview = pci_ioremap_bar(pdev, 0);
>        if (!bp->regview) {
>                printk(KERN_ERR PFX "Cannot map register space, aborting\n");
>                rc = -ENOMEM;
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Arjan van de Ven - Oct. 22, 2008, 1:50 p.m.
On Wed, 22 Oct 2008 09:05:20 +0200
"Eliezer Tamir" <eliezer.tamir@gmail.com> wrote:

> BNX2X devices have two BARs.
> You might want to convert both.

the second one doesn't map the whole bar per se... so it doesn't fit
the pattern of pci_ioremap_bar()
Jeff Garzik - Oct. 31, 2008, 4:56 a.m.
Arjan van de Ven wrote:
> Now that Linus added the pci_ioremap_bar() helper macro, this can go through
> 
> 
> From: Arjan van de Ven <arjan@linux.intel.com>
> Date: Sun, 28 Sep 2008 16:17:08 -0700
> Subject: [PATCH] pci: use pci_ioremap_bar() in drivers/net
> 
> Use the newly introduced pci_ioremap_bar() function in drivers/net.
> pci_ioremap_bar() just takes a pci device and a bar number, with the goal
> of making it really hard to get wrong, while also having a central place
> to stick sanity checks.
> 
> CC: netdev@vger.kernel.org
> Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
> ---
>  drivers/net/bnx2x_main.c                 |    3 +--
>  drivers/net/e1000/e1000_main.c           |    7 ++-----
>  drivers/net/epic100.c                    |    2 +-
>  drivers/net/ixgb/ixgb_main.c             |    3 +--
>  drivers/net/qla3xxx.c                    |    4 +---
>  drivers/net/s2io.c                       |    6 ++----
>  drivers/net/wan/dscc4.c                  |    3 +--
>  drivers/net/wan/pc300too.c               |    2 +-
>  drivers/net/wan/pci200syn.c              |    2 +-
>  drivers/net/wireless/hostap/hostap_pci.c |    2 +-
>  drivers/net/wireless/ipw2200.c           |    2 +-
>  drivers/net/wireless/rt2x00/rt2x00pci.c  |    3 +--
>  12 files changed, 14 insertions(+), 25 deletions(-)

applied


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index fce7451..8f7c3e9 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -10090,8 +10090,7 @@  static int __devinit bnx2x_init_dev(struct pci_dev *pdev,
 
 	dev->irq = pdev->irq;
 
-	bp->regview = ioremap_nocache(dev->base_addr,
-				      pci_resource_len(pdev, 0));
+	bp->regview = pci_ioremap_bar(pdev, 0);
 	if (!bp->regview) {
 		printk(KERN_ERR PFX "Cannot map register space, aborting\n");
 		rc = -ENOMEM;
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index fac8215..6ccb955 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -967,8 +967,7 @@  static int __devinit e1000_probe(struct pci_dev *pdev,
 	hw->back = adapter;
 
 	err = -EIO;
-	hw->hw_addr = ioremap(pci_resource_start(pdev, BAR_0),
-			      pci_resource_len(pdev, BAR_0));
+	hw->hw_addr = pci_ioremap_bar(pdev, BAR_0);
 	if (!hw->hw_addr)
 		goto err_ioremap;
 
@@ -1016,9 +1015,7 @@  static int __devinit e1000_probe(struct pci_dev *pdev,
 	 * because it depends on mac_type */
 	if ((hw->mac_type == e1000_ich8lan) &&
 	   (pci_resource_flags(pdev, 1) & IORESOURCE_MEM)) {
-		hw->flash_address =
-			ioremap(pci_resource_start(pdev, 1),
-				pci_resource_len(pdev, 1));
+		hw->flash_address = pci_ioremap_bar(pdev, 1);
 		if (!hw->flash_address)
 			goto err_flashmap;
 	}
diff --git a/drivers/net/epic100.c b/drivers/net/epic100.c
index 76118dd..40b4fe0 100644
--- a/drivers/net/epic100.c
+++ b/drivers/net/epic100.c
@@ -364,7 +364,7 @@  static int __devinit epic_init_one (struct pci_dev *pdev,
 	ioaddr = pci_resource_start (pdev, 0);
 #else
 	ioaddr = pci_resource_start (pdev, 1);
-	ioaddr = (long) ioremap (ioaddr, pci_resource_len (pdev, 1));
+	ioaddr = (long) pci_ioremap_bar(pdev, 1);
 	if (!ioaddr) {
 		dev_err(&pdev->dev, "ioremap failed\n");
 		goto err_out_free_netdev;
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index be3c7dc..21995df 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -381,8 +381,7 @@  ixgb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	adapter->hw.back = adapter;
 	adapter->msg_enable = netif_msg_init(debug, DEFAULT_DEBUG_LEVEL_SHIFT);
 
-	adapter->hw.hw_addr = ioremap(pci_resource_start(pdev, BAR_0),
-	                              pci_resource_len(pdev, BAR_0));
+	adapter->hw.hw_addr = pci_ioremap_bar(pdev, BAR_0);
 	if (!adapter->hw.hw_addr) {
 		err = -EIO;
 		goto err_ioremap;
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index 3cdd07c..726fc59 100644
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -3978,9 +3978,7 @@  static int __devinit ql3xxx_probe(struct pci_dev *pdev,
 	if (qdev->device_id == QL3032_DEVICE_ID)
 		ndev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
 
-	qdev->mem_map_registers =
-	    ioremap_nocache(pci_resource_start(pdev, 1),
-			    pci_resource_len(qdev->pdev, 1));
+	qdev->mem_map_registers = pci_ioremap_bar(pdev, 1);
 	if (!qdev->mem_map_registers) {
 		printk(KERN_ERR PFX "%s: cannot map device registers\n",
 		       pci_name(pdev));
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 6a1375f..5859d0a 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -7918,8 +7918,7 @@  s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
 		goto mem_alloc_failed;
 	}
 
-	sp->bar0 = ioremap(pci_resource_start(pdev, 0),
-				     pci_resource_len(pdev, 0));
+	sp->bar0 = pci_ioremap_bar(pdev, 0);
 	if (!sp->bar0) {
 		DBG_PRINT(ERR_DBG, "%s: Neterion: cannot remap io mem1\n",
 			  dev->name);
@@ -7927,8 +7926,7 @@  s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
 		goto bar0_remap_failed;
 	}
 
-	sp->bar1 = ioremap(pci_resource_start(pdev, 2),
-				     pci_resource_len(pdev, 2));
+	sp->bar1 = pci_ioremap_bar(pdev, 2);
 	if (!sp->bar1) {
 		DBG_PRINT(ERR_DBG, "%s: Neterion: cannot remap io mem2\n",
 			  dev->name);
diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c
index 5f1ccb2..7d16ca3 100644
--- a/drivers/net/wan/dscc4.c
+++ b/drivers/net/wan/dscc4.c
@@ -730,8 +730,7 @@  static int __devinit dscc4_init_one(struct pci_dev *pdev,
 	        goto err_free_mmio_region_1;
 	}
 
-	ioaddr = ioremap(pci_resource_start(pdev, 0),
-					pci_resource_len(pdev, 0));
+	ioaddr = pci_ioremap_bar(pdev, 0);
 	if (!ioaddr) {
 		printk(KERN_ERR "%s: cannot remap MMIO region %llx @ %llx\n",
 			DRV_NAME, (unsigned long long)pci_resource_len(pdev, 0),
diff --git a/drivers/net/wan/pc300too.c b/drivers/net/wan/pc300too.c
index bf1b015..2226711 100644
--- a/drivers/net/wan/pc300too.c
+++ b/drivers/net/wan/pc300too.c
@@ -379,7 +379,7 @@  static int __devinit pc300_pci_init_one(struct pci_dev *pdev,
 	card->scabase = ioremap(scaphys, PC300_SCA_SIZE);
 
 	ramphys = pci_resource_start(pdev,3) & PCI_BASE_ADDRESS_MEM_MASK;
-	card->rambase = ioremap(ramphys, pci_resource_len(pdev,3));
+	card->rambase = pci_ioremap_bar(pdev, 3);
 
 	if (card->plxbase == NULL ||
 	    card->scabase == NULL ||
diff --git a/drivers/net/wan/pci200syn.c b/drivers/net/wan/pci200syn.c
index b595b64..bba111c 100644
--- a/drivers/net/wan/pci200syn.c
+++ b/drivers/net/wan/pci200syn.c
@@ -343,7 +343,7 @@  static int __devinit pci200_pci_init_one(struct pci_dev *pdev,
 	card->scabase = ioremap(scaphys, PCI200SYN_SCA_SIZE);
 
 	ramphys = pci_resource_start(pdev,3) & PCI_BASE_ADDRESS_MEM_MASK;
-	card->rambase = ioremap(ramphys, pci_resource_len(pdev,3));
+	card->rambase = pci_ioremap_bar(pdev, 3);
 
 	if (card->plxbase == NULL ||
 	    card->scabase == NULL ||
diff --git a/drivers/net/wireless/hostap/hostap_pci.c b/drivers/net/wireless/hostap/hostap_pci.c
index 3a874fc..8fdd41f 100644
--- a/drivers/net/wireless/hostap/hostap_pci.c
+++ b/drivers/net/wireless/hostap/hostap_pci.c
@@ -312,7 +312,7 @@  static int prism2_pci_probe(struct pci_dev *pdev,
 		goto err_out_disable;
 	}
 
-	mem = ioremap(phymem, pci_resource_len(pdev, 0));
+	mem = pci_ioremap_bar(pdev, 0);
 	if (mem == NULL) {
 		printk(KERN_ERR "prism2: Cannot remap PCI memory region\n") ;
 		goto fail;
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index dcce354..c7de279 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -11648,7 +11648,7 @@  static int __devinit ipw_pci_probe(struct pci_dev *pdev,
 	length = pci_resource_len(pdev, 0);
 	priv->hw_len = length;
 
-	base = ioremap_nocache(pci_resource_start(pdev, 0), length);
+	base = pci_ioremap_bar(pdev, 0);
 	if (!base) {
 		err = -ENODEV;
 		goto out_pci_release_regions;
diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c
index adf2876..62449da 100644
--- a/drivers/net/wireless/rt2x00/rt2x00pci.c
+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
@@ -222,8 +222,7 @@  static int rt2x00pci_alloc_reg(struct rt2x00_dev *rt2x00dev)
 {
 	struct pci_dev *pci_dev = to_pci_dev(rt2x00dev->dev);
 
-	rt2x00dev->csr.base = ioremap(pci_resource_start(pci_dev, 0),
-				      pci_resource_len(pci_dev, 0));
+	rt2x00dev->csr.base = pci_ioremap_bar(pci_dev, 0);
 	if (!rt2x00dev->csr.base)
 		goto exit;