2004-10-07 23:47:06

by Hanna Linder

[permalink] [raw]
Subject: [PATCH 2.6][10/12] prep_pci.c replace pci_find_device with pci_get_device


As pci_find_device is going away I've replaced it with pci_get_device.
If someone with a PPC system could test it I would appreciate it.

Thanks.

Hanna Linder
IBM Linux Technology Center

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

---
diff -Nrup linux-2.6.9-rc3-mm3cln/arch/ppc/platforms/prep_pci.c linux-2.6.9-rc3-mm3patch/arch/ppc/platforms/prep_pci.c
--- linux-2.6.9-rc3-mm3cln/arch/ppc/platforms/prep_pci.c 2004-09-29 20:05:51.000000000 -0700
+++ linux-2.6.9-rc3-mm3patch/arch/ppc/platforms/prep_pci.c 2004-10-07 16:29:09.995482096 -0700
@@ -1069,7 +1069,7 @@ prep_pib_init(void)
* Perform specific configuration for the Via Tech or
* or Winbond PCI-ISA-Bridge part.
*/
- if ((dev = pci_find_device(PCI_VENDOR_ID_VIA,
+ if ((dev = pci_get_device(PCI_VENDOR_ID_VIA,
PCI_DEVICE_ID_VIA_82C586_1, dev))) {
/*
* PPCBUG does not set the enable bits
@@ -1080,7 +1080,7 @@ prep_pib_init(void)
reg |= 0x03; /* IDE: Chip Enable Bits */
pci_write_config_byte(dev, 0x40, reg);
}
- if ((dev = pci_find_device(PCI_VENDOR_ID_VIA,
+ if ((dev = pci_get_device(PCI_VENDOR_ID_VIA,
PCI_DEVICE_ID_VIA_82C586_2,
dev)) && (dev->devfn = 0x5a)) {
/* Force correct USB interrupt */
@@ -1089,7 +1089,7 @@ prep_pib_init(void)
PCI_INTERRUPT_LINE,
dev->irq);
}
- if ((dev = pci_find_device(PCI_VENDOR_ID_WINBOND,
+ if ((dev = pci_get_device(PCI_VENDOR_ID_WINBOND,
PCI_DEVICE_ID_WINBOND_83C553, dev))) {
/* Clear PCI Interrupt Routing Control Register. */
short_reg = 0x0000;
@@ -1102,7 +1102,7 @@ prep_pib_init(void)
}
}

- if ((dev = pci_find_device(PCI_VENDOR_ID_WINBOND,
+ if ((dev = pci_get_device(PCI_VENDOR_ID_WINBOND,
PCI_DEVICE_ID_WINBOND_82C105, dev))){
if (OpenPIC_Addr){
/*
@@ -1207,7 +1207,7 @@ prep_pcibios_fixup(void)
printk("Setting PCI interrupts for a \"%s\"\n", Motherboard_map_name);

/* Iterate through all the PCI devices, setting the IRQ */
- while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
+ for_each_pci_dev(dev) {
/*
* If we have residual data, then this is easy: query the
* residual data for the IRQ line allocated to the device.
@@ -1260,12 +1260,13 @@ prep_pcibios_after_init(void)
* instead of 0xc0000. vgacon.c (for example) is completely unaware of
* this little quirk.
*/
- dev = pci_find_device(PCI_VENDOR_ID_WD, PCI_DEVICE_ID_WD_90C, NULL);
+ dev = pci_get_device(PCI_VENDOR_ID_WD, PCI_DEVICE_ID_WD_90C, NULL);
if (dev) {
dev->resource[1].end -= dev->resource[1].start;
dev->resource[1].start = 0;
/* tell the hardware */
pci_write_config_dword(dev, PCI_BASE_ADDRESS_1, 0x0);
+ pci_dev_put(dev);
}
#endif
}


2004-10-09 17:05:58

by Scott Feldman

[permalink] [raw]
Subject: Re: [Kernel-janitors] [PATCH 2.6][10/12] prep_pci.c replace pci_find_device with pci_get_device

On Thu, 2004-10-07 at 16:40, Hanna Linder wrote:
> @@ -1102,7 +1102,7 @@ prep_pib_init(void)
> }
> }
>
> - if ((dev = pci_find_device(PCI_VENDOR_ID_WINBOND,
> + if ((dev = pci_get_device(PCI_VENDOR_ID_WINBOND,
> PCI_DEVICE_ID_WINBOND_82C105, dev))){
> if (OpenPIC_Addr){
> /*

Missing pci_dev_put(dev) cleanup?

-scott

2004-10-12 16:40:42

by Hanna Linder

[permalink] [raw]
Subject: Re: [Kernel-janitors] [PATCH 2.6][10/12] prep_pci.c replace pci_find_device with pci_get_device

--On Saturday, October 09, 2004 10:05:35 AM -0700 Scott Feldman <[email protected]> wrote:

> On Thu, 2004-10-07 at 16:40, Hanna Linder wrote:
>> @@ -1102,7 +1102,7 @@ prep_pib_init(void)
>> }
>> }
>>
>> - if ((dev = pci_find_device(PCI_VENDOR_ID_WINBOND,
>> + if ((dev = pci_get_device(PCI_VENDOR_ID_WINBOND,
>> PCI_DEVICE_ID_WINBOND_82C105, dev))){
>> if (OpenPIC_Addr){
>> /*
>
> Missing pci_dev_put(dev) cleanup?
>
> -scott
>
>

Hi Scott,

It doesnt need an explicit dev_put because the pci_dev * is used as the *from pointer
in the pci_get_device call which will do the dev_put automaticaly.

Hanna

2004-10-12 21:44:27

by Hanna Linder

[permalink] [raw]
Subject: Re: [Kernel-janitors] [PATCH 2.6][10/12] prep_pci.c replace pci_find_device with pci_get_device

--On Saturday, October 09, 2004 10:05:35 AM -0700 Scott Feldman <[email protected]> wrote:
> Missing pci_dev_put(dev) cleanup?

Here is the new patch. Thanks Scott.

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

diff -Nrup linux-2.6.9-rc4-mm1cln/arch/ppc/platforms/prep_pci.c linux-2.6.9-rc4-mm1patch2/arch/ppc/platforms/prep_pci.c
--- linux-2.6.9-rc4-mm1cln/arch/ppc/platforms/prep_pci.c 2004-10-12 14:15:28.000000000 -0700
+++ linux-2.6.9-rc4-mm1patch2/arch/ppc/platforms/prep_pci.c 2004-10-12 14:29:11.165888096 -0700
@@ -1069,7 +1069,7 @@ prep_pib_init(void)
* Perform specific configuration for the Via Tech or
* or Winbond PCI-ISA-Bridge part.
*/
- if ((dev = pci_find_device(PCI_VENDOR_ID_VIA,
+ if ((dev = pci_get_device(PCI_VENDOR_ID_VIA,
PCI_DEVICE_ID_VIA_82C586_1, dev))) {
/*
* PPCBUG does not set the enable bits
@@ -1080,7 +1080,7 @@ prep_pib_init(void)
reg |= 0x03; /* IDE: Chip Enable Bits */
pci_write_config_byte(dev, 0x40, reg);
}
- if ((dev = pci_find_device(PCI_VENDOR_ID_VIA,
+ if ((dev = pci_get_device(PCI_VENDOR_ID_VIA,
PCI_DEVICE_ID_VIA_82C586_2,
dev)) && (dev->devfn = 0x5a)) {
/* Force correct USB interrupt */
@@ -1089,7 +1089,7 @@ prep_pib_init(void)
PCI_INTERRUPT_LINE,
dev->irq);
}
- if ((dev = pci_find_device(PCI_VENDOR_ID_WINBOND,
+ if ((dev = pci_get_device(PCI_VENDOR_ID_WINBOND,
PCI_DEVICE_ID_WINBOND_83C553, dev))) {
/* Clear PCI Interrupt Routing Control Register. */
short_reg = 0x0000;
@@ -1100,9 +1100,10 @@ prep_pib_init(void)
pci_write_config_byte(dev, 0x43, reg);
}
}
+ pci_dev_put(dev);
}

- if ((dev = pci_find_device(PCI_VENDOR_ID_WINBOND,
+ if ((dev = pci_get_device(PCI_VENDOR_ID_WINBOND,
PCI_DEVICE_ID_WINBOND_82C105, dev))){
if (OpenPIC_Addr){
/*
@@ -1121,6 +1122,7 @@ prep_pib_init(void)
pci_write_config_dword(dev, 0x40, 0x10ff08a1);
}
}
+ pci_dev_put(dev);
}

static void __init
@@ -1207,7 +1209,7 @@ prep_pcibios_fixup(void)
printk("Setting PCI interrupts for a \"%s\"\n", Motherboard_map_name);

/* Iterate through all the PCI devices, setting the IRQ */
- while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
+ for_each_pci_dev(dev) {
/*
* If we have residual data, then this is easy: query the
* residual data for the IRQ line allocated to the device.
@@ -1260,12 +1262,13 @@ prep_pcibios_after_init(void)
* instead of 0xc0000. vgacon.c (for example) is completely unaware of
* this little quirk.
*/
- dev = pci_find_device(PCI_VENDOR_ID_WD, PCI_DEVICE_ID_WD_90C, NULL);
+ dev = pci_get_device(PCI_VENDOR_ID_WD, PCI_DEVICE_ID_WD_90C, NULL);
if (dev) {
dev->resource[1].end -= dev->resource[1].start;
dev->resource[1].start = 0;
/* tell the hardware */
pci_write_config_dword(dev, PCI_BASE_ADDRESS_1, 0x0);
+ pci_dev_put(dev);
}
#endif
}