2004-10-04 23:05:51

by Hanna Linder

[permalink] [raw]
Subject: [PATCH 2.6][1/12] arch/ppc/kernel/pci.c replace pci_find_device with pci_get_device


As pci_find_device is going away I have replaced this call with pci_get_device.
If someone with a PPC system could verify it I would appreciate it. This is the only
one in ppc/kernel all the others are under ppc/platform. There will be 12 total.

Hanna Linder
IBM Linux Technology Center

Signed-off-by: Hanna Linder <[email protected]>

---

diff -Nrup linux-2.6.9-rc3-mm2cln/arch/ppc/kernel/pci.c linux-2.6.9-rc3-mm2patch/arch/ppc/kernel/pci.c
--- linux-2.6.9-rc3-mm2cln/arch/ppc/kernel/pci.c 2004-10-04 11:38:04.000000000 -0700
+++ linux-2.6.9-rc3-mm2patch/arch/ppc/kernel/pci.c 2004-10-04 14:36:09.000000000 -0700
@@ -503,7 +503,7 @@ pcibios_allocate_resources(int pass)
u16 command;
struct resource *r;

- while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
+ while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
pci_read_config_word(dev, PCI_COMMAND, &command);
for (idx = 0; idx < 6; idx++) {
r = &dev->resource[idx];
@@ -540,7 +540,7 @@ pcibios_assign_resources(void)
int idx;
struct resource *r;

- while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
+ while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
int class = dev->class >> 8;

/* Don't touch classless devices and host bridges */
@@ -866,7 +866,7 @@ pci_device_from_OF_node(struct device_no
*/
if (!pci_to_OF_bus_map)
return 0;
- while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
+ while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
if (pci_to_OF_bus_map[dev->bus->number] != *bus)
continue;
if (dev->devfn != *devfn)


2004-10-05 09:44:53

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [Kernel-janitors] [PATCH 2.6][1/12] arch/ppc/kernel/pci.c replace pci_find_device with pci_get_device

On Mon, Oct 04, 2004 at 03:58:01PM -0700, Hanna Linder wrote:
>
> As pci_find_device is going away I have replaced this call with pci_get_device.
> If someone with a PPC system could verify it I would appreciate it. This is the only
> one in ppc/kernel all the others are under ppc/platform. There will be 12 total.

what about adding a for_each_pci_dev macro that nicely hides these AND_ID
iterations?

2004-10-06 21:28:42

by Hanna Linder

[permalink] [raw]
Subject: Re: [Kernel-janitors] [PATCH 2.6][1/12] arch/ppc/kernel/pci.c replace pci_find_device with pci_get_device

--On Tuesday, October 05, 2004 10:44:43 AM +0100 Christoph Hellwig <[email protected]> wrote:

> what about adding a for_each_pci_dev macro that nicely hides these AND_ID
> iterations?
>

OK. How about this? Following are two patches that I used to test this
new macro on my T23. I found roughly 54 other places this macro can
be used.

Hanna Linder
IBM Linux Technology Center

Signed-off-by: Hanna Linder <[email protected]>

---

diff -Nrup linux-2.6.9-rc3-mm2cln/include/linux/pci.h linux-2.6.9-rc3-mm2patch/include/linux/pci.h
--- linux-2.6.9-rc3-mm2cln/include/linux/pci.h 2004-10-04 11:38:51.000000000 -0700
+++ linux-2.6.9-rc3-mm2patch/include/linux/pci.h 2004-10-05 15:56:26.000000000 -0700
@@ -548,6 +548,7 @@ struct pci_dev {
#define pci_dev_g(n) list_entry(n, struct pci_dev, global_list)
#define pci_dev_b(n) list_entry(n, struct pci_dev, bus_list)
#define to_pci_dev(n) container_of(n, struct pci_dev, dev)
+#define for_each_pci_dev(d) while ((d = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, d)) != NULL)

/*
* For PCI devices, the region numbers are assigned this way:

2004-10-06 23:15:10

by Hanna Linder

[permalink] [raw]
Subject: Re: [Kernel-janitors] [PATCH 2.6][1/12] arch/ppc/kernel/pci.c replace pci_find_device with pci_get_device

--On Tuesday, October 05, 2004 10:44:43 AM +0100 Christoph Hellwig <[email protected]> wrote:

> On Mon, Oct 04, 2004 at 03:58:01PM -0700, Hanna Linder wrote:
>>
>> As pci_find_device is going away I have replaced this call with pci_get_device.
>> If someone with a PPC system could verify it I would appreciate it. This is the only
>> one in ppc/kernel all the others are under ppc/platform. There will be 12 total.
>
> what about adding a for_each_pci_dev macro that nicely hides these AND_ID
> iterations?
>

Here is a re-roll of the original patch now with the new for_each_pci_dev macro instead.

Hanna Linder
IBM Linux Technology Center

Signed-off-by: Hanna Linder <[email protected]>

---

diff -Nrup linux-2.6.9-rc3-mm2cln/arch/ppc/kernel/pci.c linux-2.6.9-rc3-mm2patch/arch/ppc/kernel/pci.c
--- linux-2.6.9-rc3-mm2cln/arch/ppc/kernel/pci.c 2004-10-04 11:38:04.000000000 -0700
+++ linux-2.6.9-rc3-mm2patch/arch/ppc/kernel/pci.c 2004-10-06 16:03:20.302316368 -0700
@@ -503,7 +503,7 @@ pcibios_allocate_resources(int pass)
u16 command;
struct resource *r;

- while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
+ for_each_pci_dev(dev) {
pci_read_config_word(dev, PCI_COMMAND, &command);
for (idx = 0; idx < 6; idx++) {
r = &dev->resource[idx];
@@ -540,7 +540,7 @@ pcibios_assign_resources(void)
int idx;
struct resource *r;

- while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
+ for_each_pci_dev(dev) {
int class = dev->class >> 8;

/* Don't touch classless devices and host bridges */
@@ -866,7 +866,7 @@ pci_device_from_OF_node(struct device_no
*/
if (!pci_to_OF_bus_map)
return 0;
- while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
+ for_each_pci_dev(dev) {
if (pci_to_OF_bus_map[dev->bus->number] != *bus)
continue;
if (dev->devfn != *devfn)


2004-10-07 13:21:12

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [Kernel-janitors] [PATCH 2.6][1/12] arch/ppc/kernel/pci.c replace pci_find_device with pci_get_device

On Wed, Oct 06, 2004 at 01:23:21PM -0700, Hanna Linder wrote:
> --On Tuesday, October 05, 2004 10:44:43 AM +0100 Christoph Hellwig <[email protected]> wrote:
>
> > what about adding a for_each_pci_dev macro that nicely hides these AND_ID
> > iterations?
> >
>
> OK. How about this? Following are two patches that I used to test this
> new macro on my T23. I found roughly 54 other places this macro can
> be used.

Looks good to me

---end quoted text---