> void pci_assign_unassigned_bridge_resources(struct pci_dev *bridge) > { > struct pci_bus *parent = bridge->subordinate; > + int tried_times = 0; > + struct resource_list_x head, *list; > int retval; > + unsigned long type_mask = IORESOURCE_IO | IORESOURCE_MEM | > + IORESOURCE_PREFETCH; > + > + head.next = NULL; > > +again: > pci_bus_size_bridges(parent); > - __pci_bridge_assign_resources(bridge, NULL); > + __pci_bridge_assign_resources(bridge, &head); > retval = pci_reenable_device(bridge); > pci_set_master(bridge); > pci_enable_bridges(parent); > + > + tried_times++; > + > + /* any device complain? */ useless comment. > + if (!head.next) > + return; > + > + if (tried_times >= 2) { stray space > + /* still fail, don't need to try more */ useless comment > + free_failed_list(&head); > + return; > + } > + > + printk(KERN_DEBUG "PCI: No. %d try to assign unassigned res\n", > + tried_times + 1); > + > + /* > + * Try to release leaf bridge's resources that doesn't fit resource of > + * child device under that bridge > + */ > + for (list = head.next; list;) { > + struct pci_bus *bus = list->dev->bus; > + unsigned long flags = list->flags; > + > + pci_bus_release_bridge_resources(bus, flags & type_mask, > + whole_subtree); > + list = list->next; > + } > + /* retore size and flags */ "restore" /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