Re: [patch 03/11] arch/i386/pci/i386.c: Use new for_each_pci_dev macro

From: Dave Jones
Date: Tue Jan 11 2005 - 19:58:24 EST


On Wed, Jan 12, 2005 at 12:34:58AM +0100, domen@xxxxxxxxxxxx wrote:

> As requested by Christoph Hellwig I've created a new macro called
> for_each_pci_dev. It is a wrapper for this common use of pci_get/find_device:
>
> (while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL))
>
> This macro will return the pci_dev *for all pci devices. Here is the first patch I
> used to test this macro with. Compiled and booted on my T23. There will be
> 53 more patches using this new macro.

Which looks just like the pci_for_each_dev we used to have.
That function got removed due some shortcoming or other that I never
fully understood, but ISTR it had something to do with locking.
(why it couldnt be hidden inside for_each_pci_dev is a mystery to me)

We've had lots of code in the kernel go from this..

pci_for_each_dev(loop_dev) {

to the disgustingly unreadable..

while ((loop_dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, loop_dev)) != NULL) {

and now its going to ..

for_each_pci_dev(loop_dev) {

So,.. what has all this churn bought us, and where does it end ?
With four words in the function name, we've enough possibilities
for quite a few more iterations yet.

Dave

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/