|
@@ -1290,15 +1290,17 @@ void __init e820_reserve_resources(void)
|
|
res->start = e820.map[i].addr;
|
|
res->start = e820.map[i].addr;
|
|
res->end = end;
|
|
res->end = end;
|
|
|
|
|
|
- res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
|
|
|
|
|
|
+ res->flags = IORESOURCE_MEM;
|
|
|
|
|
|
/*
|
|
/*
|
|
* don't register the region that could be conflicted with
|
|
* don't register the region that could be conflicted with
|
|
* pci device BAR resource and insert them later in
|
|
* pci device BAR resource and insert them later in
|
|
* pcibios_resource_survey()
|
|
* pcibios_resource_survey()
|
|
*/
|
|
*/
|
|
- if (e820.map[i].type != E820_RESERVED || res->start < (1ULL<<20))
|
|
|
|
|
|
+ if (e820.map[i].type != E820_RESERVED || res->start < (1ULL<<20)) {
|
|
|
|
+ res->flags |= IORESOURCE_BUSY;
|
|
insert_resource(&iomem_resource, res);
|
|
insert_resource(&iomem_resource, res);
|
|
|
|
+ }
|
|
res++;
|
|
res++;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1318,7 +1320,7 @@ void __init e820_reserve_resources_late(void)
|
|
res = e820_res;
|
|
res = e820_res;
|
|
for (i = 0; i < e820.nr_map; i++) {
|
|
for (i = 0; i < e820.nr_map; i++) {
|
|
if (!res->parent && res->end)
|
|
if (!res->parent && res->end)
|
|
- reserve_region_with_split(&iomem_resource, res->start, res->end, res->name);
|
|
|
|
|
|
+ insert_resource_expand_to_fit(&iomem_resource, res);
|
|
res++;
|
|
res++;
|
|
}
|
|
}
|
|
}
|
|
}
|