pci: don't reassign to ROM res if it is not going to be enabled
A ROM resource that doesn't fit should not cause us to try to re-assign all the bus resources. Nobody generally cares, and re-assigning is going to just cause way more troubles than it tries to solve. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
30ff056c42
commit
9a928660c9
1 changed files with 10 additions and 2 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue