Skip to contentSkip to conversation

pci: use pci_ioremap_bar() in drivers/ide

PATCH Applied Arjan van de Ven 3 participants 10 messages Oct 21, 2008 – Oct 23, 2008 libata

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 pci: use pci_ioremap_bar() in drivers/ide

Quoted 1 line

From 9233d7e38207749586c47410b400afcf3e7e59fb Mon Sep 17 00:00:00 2001

From: Arjan van de Ven <[email protected]>
Date: Sun, 28 Sep 2008 16:14:10 -0700
Subject: [PATCH] pci: use pci_ioremap_bar() in drivers/ide

Use the newly introduced pci_ioremap_bar() function in drivers/ide. 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.

---
 drivers/ide/pci/sgiioc4.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/ide/pci/sgiioc4.c +1 -1
index 8af9b23..9233217 100644
@@ -574,7 +574,7 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev)
 
 	/*  Get the CmdBlk and CtrlBlk Base Registers */
 	bar0 = pci_resource_start(dev, 0);
-	virt_base = ioremap(bar0, pci_resource_len(dev, 0));
+	virt_base = pci_ioremap_bar(dev, 0);
 	if (virt_base == NULL) {
 		printk(KERN_ERR "%s: Unable to remap BAR 0 address: 0x%lx\n",
 				DRV_NAME, bar0);
Signature · 8 lines
1.5.5.1



-- 
Arjan van de Ven 	Intel Open Source Technology Centre
For development, discussion and tips for power savings, 
visit http://www.lesswatts.org
#2 lore raw
Quoted 8 lines · Hello, I wrote:
Quoted 6 lines

Use the newly introduced pci_ioremap_bar() function in drivers/ide. 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.

No, I'm takign back my ACK.
Since the patch intends to address all drivers/ide/, it's clearly no
compolete -- siimage.c and scc_pata.c beg for the alike change (it will even permit to kill 4 local variables in the latter driver).

MBR, Sergei

#3 lore raw
Quoted 9 lines · On Wed, 22 Oct 2008 21:40:37 +0400 Sergei Shtylyov <[email protected]>…
Quoted 6 lines · Hello, I wrote:
Quoted 6 lines

Use the newly introduced pci_ioremap_bar() function in drivers/ide. 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.

Quoted 8 lines
Quoted 1 line

No, I'm takign back my ACK.
Since the patch intends to address all drivers/ide/, it's clearly
no compolete -- siimage.c and scc_pata.c beg for the alike change (it will even permit to kill 4 local variables in the latter driver).

MBR, Sergei

I'll be happy to take a second pass, but "doesn't convert everyone" shouldn't really be a reason to do the first pass ;-)

Signature · 3 lines
Arjan van de Ven 	Intel Open Source Technology Centre
For development, discussion and tips for power savings, 
visit http://www.lesswatts.org
#4 lore raw
Quoted 9 lines · Arjan van de Ven
Quoted 8 lines
Quoted 8 lines
Quoted 6 lines

Use the newly introduced pci_ioremap_bar() function in drivers/ide. 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.

Quoted 7 lines
Quoted 4 lines

No, I'm takign back my ACK.
Since the patch intends to address all drivers/ide/, it's clearly
no compolete -- siimage.c and scc_pata.c beg for the alike change (it will even permit to kill 4 local variables in the latter driver).

I'll be happy to take a second pass, but "doesn't convert everyone" shouldn't really be a reason to do the first pass ;-)

To not do, you mean?
If you're going to leave this patch as it, it's worth to change the
subject/header reflecting a modest goal of doing this only for one driver. ;-)

MBR, Sergei

#5 lore raw
In reply to Sergei Shtylyov
Quoted 7 lines · On Wed, 22 Oct 2008 21:40:37 +0400 Sergei Shtylyov <[email protected]>…
Quoted 4 lines · Hello, I wrote:
Quoted 4 lines

Use the newly introduced pci_ioremap_bar() function in drivers/ide. 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.

Quoted 8 lines
Quoted 3 lines
Quoted 1 line

No, I'm takign back my ACK.
Since the patch intends to address all drivers/ide/, it's clearly
no compolete -- siimage.c and scc_pata.c beg for the alike change (it will even permit to kill 4 local variables in the latter driver).

like this ?

Quoted 1 line

From 3f88a6936f7802a5d4af6c54a1ef353d14ff1ab2 Mon Sep 17 00:00:00 2001

From: Arjan van de Ven <[email protected]>
Date: Wed, 22 Oct 2008 13:21:07 -0700
Subject: [PATCH] ide: two more pci_ioremap_bar() conversions

based on suggestion from Sergei Shtylyov, there are two more places where using pci_ioremap_bar() makes sense.

---
 drivers/ide/pci/scc_pata.c |   10 ++++------
 drivers/ide/pci/siimage.c  |    2 +-
 2 files changed, 5 insertions(+), 7 deletions(-)
drivers/ide/pci/scc_pata.c +4 -6
index 9ce1d80..b4be295 100644
@@ -536,10 +536,6 @@ static u8 scc_udma_filter(ide_drive_t *drive)
 
 static int setup_mmio_scc (struct pci_dev *dev, const char *name)
 {
-	unsigned long ctl_base = pci_resource_start(dev, 0);
-	unsigned long dma_base = pci_resource_start(dev, 1);
-	unsigned long ctl_size = pci_resource_len(dev, 0);
-	unsigned long dma_size = pci_resource_len(dev, 1);
 	void __iomem *ctl_addr;
 	void __iomem *dma_addr;
 	int i, ret;
@@ -557,10 +553,12 @@ static int setup_mmio_scc (struct pci_dev *dev, const char *name)
 		return ret;
 	}
 
-	if ((ctl_addr = ioremap(ctl_base, ctl_size)) == NULL)
+	ctl_addr = pci_ioremap_bar(dev, 0);
+	if (!ctl_addr)
 		goto fail_0;
 
-	if ((dma_addr = ioremap(dma_base, dma_size)) == NULL)
+	dma_addr = pci_ioremap_bar(dev, 1);
+	if (!dma_addr)
 		goto fail_1;
 
 	pci_set_master(dev);
drivers/ide/pci/siimage.c +1 -1
index eb4faf9..c3107df 100644
@@ -784,7 +784,7 @@ static int __devinit siimage_init_one(struct pci_dev *dev,
 			printk(KERN_WARNING DRV_NAME " %s: MMIO ports not "
 				"available\n", pci_name(dev));
 		} else {
-			ioaddr = ioremap(bar5, barsize);
+			ioaddr = pci_ioremap_bar(dev, 5);
 			if (ioaddr == NULL)
 				release_mem_region(bar5, barsize);
 		}
Signature · 8 lines
1.5.5.1



-- 
Arjan van de Ven 	Intel Open Source Technology Centre
For development, discussion and tips for power savings, 
visit http://www.lesswatts.org
#6 lore raw
Quoted 7 lines · Arjan van de Ven
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

Use the newly introduced pci_ioremap_bar() function in drivers/ide. 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.

Quoted 8 lines
Quoted 6 lines
Quoted 1 line

No, I'm takign back my ACK.
Since the patch intends to address all drivers/ide/, it's clearly
no compolete -- siimage.c and scc_pata.c beg for the alike change (it will even permit to kill 4 local variables in the latter driver).

like this ?

Exactly.

Quoted 9 lines

From 3f88a6936f7802a5d4af6c54a1ef353d14ff1ab2 Mon Sep 17 00:00:00 2001
From: Arjan van de Ven <[email protected]>
Date: Wed, 22 Oct 2008 13:21:07 -0700
Subject: [PATCH] ide: two more pci_ioremap_bar() conversions

based on suggestion from Sergei Shtylyov, there are two more places where using pci_ioremap_bar() makes sense.

Quoted 4 lines
drivers/ide/pci/scc_pata.c +0 -0
index 9ce1d80..b4be295 100644

[...]

Quoted 5 lines
drivers/ide/pci/scc_pata.c +0 -1
@@ -557,10 +553,12 @@ static int setup_mmio_scc (struct pci_dev *dev, const char *name)
 		return ret;
 	}
 
-	if ((ctl_addr = ioremap(ctl_base, ctl_size)) == NULL)

drivers/ide/pci/scc_pata.c static int setup_mmio_scc (struct pci_dev *dev, const char *name) · line 564

Quoted 10 lines
drivers/ide/pci/scc_pata.c +4 -1
+	ctl_addr = pci_ioremap_bar(dev, 0);
+	if (!ctl_addr)
 		goto fail_0;
 
-	if ((dma_addr = ioremap(dma_base, dma_size)) == NULL)
+	dma_addr = pci_ioremap_bar(dev, 1);
+	if (!dma_addr)
 		goto fail_1;
 
 	pci_set_master(dev);

An added bonus here is fixing couple checkpatch.pl's warnings. There were 22 errors and 18 warnings total before this patch. :-)

MBR, Sergei

#7 lore raw
Quoted 17 lines · I just
Quoted 4 lines
drivers/ide/pci/scc_pata.c +0 -0
index 9ce1d80..b4be295 100644

[...]

Quoted 10 lines
drivers/ide/pci/scc_pata.c +2 -1
@@ -557,10 +553,12 @@ static int setup_mmio_scc (struct pci_dev *dev, 
 const char *name)
         return ret;
     }
 
-    if ((ctl_addr = ioremap(ctl_base, ctl_size)) == NULL)
+    ctl_addr = pci_ioremap_bar(dev, 0);
+    if (!ctl_addr)
         goto fail_0;
 
Quoted 8 lines
Quoted 6 lines
drivers/ide/pci/scc_pata.c +2 -1
-    if ((dma_addr = ioremap(dma_base, dma_size)) == NULL)
+    dma_addr = pci_ioremap_bar(dev, 1);
+    if (!dma_addr)
         goto fail_1;
 
     pci_set_master(dev);

An added bonus here is fixing couple checkpatch.pl's warnings.

Wait, those even were errors, so even better. :-)

MBR, Sergei

#8 lore raw
In reply to Sergei Shtylyov
Quoted 25 lines · Sergei Shtylyov
Quoted 7 lines · Arjan van de Ven
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

Use the newly introduced pci_ioremap_bar() function in drivers/ide. 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.

Quoted 8 lines
Quoted 6 lines
Quoted 1 line

No, I'm takign back my ACK.
Since the patch intends to address all drivers/ide/, it's clearly
no compolete -- siimage.c and scc_pata.c beg for the alike change (it will even permit to kill 4 local variables in the latter driver).

like this ?

Exactly.

Quoted 4 lines

From 3f88a6936f7802a5d4af6c54a1ef353d14ff1ab2 Mon Sep 17 00:00:00 2001
From: Arjan van de Ven <[email protected]>
Date: Wed, 22 Oct 2008 13:21:07 -0700
Subject: [PATCH] ide: two more pci_ioremap_bar() conversions

Quoted 6 lines
Quoted 4 lines

based on suggestion from Sergei Shtylyov, there are two more places where using pci_ioremap_bar() makes sense.

applied

#9 lore raw
In reply to Sergei Shtylyov
Quoted 4 lines · Sergei Shtylyov

Hello.

Arjan van de Ven wrote:

Quoted 8 lines
Quoted 6 lines

Use the newly introduced pci_ioremap_bar() function in drivers/ide. 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.

applied