On Wednesday 22 October 2008 02:40:41 am Yu Zhao wrote: > This patch moves all definitions of the PCI resource names to an 'enum', > and also replaces some hard-coded resource variables with symbol > names. This change eases introduction of device specific resources. Thanks for removing a bunch of magic numbers from the code. > static void > pci_restore_bars(struct pci_dev *dev) > { > - int i, numres; > - > - switch (dev->hdr_type) { > - case PCI_HEADER_TYPE_NORMAL: > - numres = 6; > - break; > - case PCI_HEADER_TYPE_BRIDGE: > - numres = 2; > - break; > - case PCI_HEADER_TYPE_CARDBUS: > - numres = 1; > - break; > - default: > - /* Should never get here, but just in case... */ > - return; > - } > + int i; > > - for (i = 0; i < numres; i++) > + for (i = 0; i < PCI_BRIDGE_RESOURCES; i++) > pci_update_resource(dev, i); > } The behavior of this function used to depend on dev->hdr_type. Now we don't look at hdr_type at all, so we do the same thing for all devices. For example, for a CardBus device, we used to call pci_update_resource() only for BAR 0; now we call it for BARs 0-6. Maybe this is safe, but I can't tell from the patch, so I think you should explain *why* it's safe in the changelog. > +/* > + * For PCI devices, the region numbers are assigned this way: > + */ > +enum { > + /* #0-5: standard PCI regions */ > + PCI_STD_RESOURCES, > + PCI_STD_RESOURCES_END = 5, > + > + /* #6: expansion ROM */ > + PCI_ROM_RESOURCE, > + > + /* address space assigned to buses behind the bridge */ > +#ifndef PCI_BRIDGE_RES_NUM > +#define PCI_BRIDGE_RES_NUM 4 > +#endif > + PCI_BRIDGE_RESOURCES, > + PCI_BRIDGE_RES_END = PCI_BRIDGE_RESOURCES + PCI_BRIDGE_RES_NUM - 1, Since you used "PCI_STD_RESOURCES_END" above, maybe you should use "PCI_BRIDGE_RESOURCES_END" instead of "PCI_BRIDGE_RES_END". Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html