From eaaaaf8d7923cef3705c6d9fe4ef19ece3d2268a Mon Sep 17 00:00:00 2001 From: Yinghai Lu Date: Sun, 28 Feb 2010 15:49:39 -0800 Subject: [PATCH] --- yaml --- r: 182605 b: refs/heads/master c: 9a928660c9dcaff568c9d379655c5aa16fb981f8 h: refs/heads/master i: 182603: 5e9221d40d2f06de1db1a556421790849cef5496 v: v3 --- [refs] | 2 +- trunk/drivers/pci/setup-bus.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 58ec73ce446d..7ec933d7c3a9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 30ff056c42c665b9ea535d8515890857ae382540 +refs/heads/master: 9a928660c9dcaff568c9d379655c5aa16fb981f8 diff --git a/trunk/drivers/pci/setup-bus.c b/trunk/drivers/pci/setup-bus.c index bf32f07c4efb..4fe36d2e1049 100644 --- a/trunk/drivers/pci/setup-bus.c +++ b/trunk/drivers/pci/setup-bus.c @@ -101,9 +101,17 @@ static void __assign_resources_sorted(struct resource_list *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)) - add_to_failed_list(fail_head, list->dev, res); + if (fail_head && !pci_is_root_bus(list->dev->bus)) { + /* + * if the failed res is for ROM BAR, and it will + * be enabled later, don't add it to the list + */ + if (!((idx == PCI_ROM_RESOURCE) && + (!(res->flags & IORESOURCE_ROM_ENABLE)))) + add_to_failed_list(fail_head, list->dev, res); + } res->start = 0; res->end = 0; res->flags = 0;