> +static void pdev_assign_resources_sorted(struct pci_dev *dev, > + struct resource_list_x *fail_head) > +{ > + struct resource *res; > + struct resource_list head, *list, *tmp; > + int idx; > + u16 class = dev->class >> 8; > + > + head.next = NULL; > + > + /* Don't touch classless devices or host bridges or ioapics. */ > + if (class == PCI_CLASS_NOT_DEFINED || class == PCI_CLASS_BRIDGE_HOST) > + return; > + > + /* Don't touch ioapic devices already enabled by firmware */ > + if (class == PCI_CLASS_SYSTEM_PIC) { > + u16 command; > + pci_read_config_word(dev, PCI_COMMAND, &command); > + if (command & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) > + return; > + } > + > + pdev_sort_resources(dev, &head); > + > + for (list = head.next; list;) { > + res = list->res; > + idx = res - &list->dev->resource[0]; > + if (pci_assign_resource(list->dev, idx)) { > + if (fail_head && !pci_is_root_bus(list->dev->bus)) { > + /* > + * device need to keep flags and size > + * for second try > + */ > + add_to_failed_list(fail_head, list->dev, res); > + } > + res->start = 0; > + res->end = 0; > + res->flags = 0; > + } > + tmp = list; > + list = list->next; > + kfree(tmp); > + } > +} This is extremely similar to pbus_assign_resources_sorted(). Any chance you could factor out the commonalities and reduce the amount of duplicated code? > +static void __ref __pci_bridge_assign_resources(const struct pci_dev *bridge, > + struct resource_list_x *fail_head) > +{ > + struct pci_bus *b; > + > + pdev_assign_resources_sorted((struct pci_dev *)bridge, fail_head); > + > + b = bridge->subordinate; > + if (!b) > + return; > + > + __pci_bus_assign_resources(b, fail_head); > + > + switch (bridge->class >> 8) { > + case PCI_CLASS_BRIDGE_PCI: > + pci_setup_bridge(b); > + break; > + > + case PCI_CLASS_BRIDGE_CARDBUS: > + pci_setup_cardbus(b); > + break; > + > + default: > + dev_info(&bridge->dev, "not setting up bridge for bus " > + "%04x:%02x\n", pci_domain_nr(b), b->number); I think this should probably be a dev_dbg. thanks, /ac -- 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