diff options
Diffstat (limited to 'arch/x86/kernel/e820.c')
-rw-r--r-- | arch/x86/kernel/e820.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index ce97bf3bed12..7aafeb5263ef 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c | |||
@@ -1290,15 +1290,17 @@ void __init e820_reserve_resources(void) | |||
1290 | res->start = e820.map[i].addr; | 1290 | res->start = e820.map[i].addr; |
1291 | res->end = end; | 1291 | res->end = end; |
1292 | 1292 | ||
1293 | res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; | 1293 | res->flags = IORESOURCE_MEM; |
1294 | 1294 | ||
1295 | /* | 1295 | /* |
1296 | * don't register the region that could be conflicted with | 1296 | * don't register the region that could be conflicted with |
1297 | * pci device BAR resource and insert them later in | 1297 | * pci device BAR resource and insert them later in |
1298 | * pcibios_resource_survey() | 1298 | * pcibios_resource_survey() |
1299 | */ | 1299 | */ |
1300 | if (e820.map[i].type != E820_RESERVED || res->start < (1ULL<<20)) | 1300 | if (e820.map[i].type != E820_RESERVED || res->start < (1ULL<<20)) { |
1301 | res->flags |= IORESOURCE_BUSY; | ||
1301 | insert_resource(&iomem_resource, res); | 1302 | insert_resource(&iomem_resource, res); |
1303 | } | ||
1302 | res++; | 1304 | res++; |
1303 | } | 1305 | } |
1304 | 1306 | ||
@@ -1318,7 +1320,7 @@ void __init e820_reserve_resources_late(void) | |||
1318 | res = e820_res; | 1320 | res = e820_res; |
1319 | for (i = 0; i < e820.nr_map; i++) { | 1321 | for (i = 0; i < e820.nr_map; i++) { |
1320 | if (!res->parent && res->end) | 1322 | if (!res->parent && res->end) |
1321 | reserve_region_with_split(&iomem_resource, res->start, res->end, res->name); | 1323 | insert_resource_expand_to_fit(&iomem_resource, res); |
1322 | res++; | 1324 | res++; |
1323 | } | 1325 | } |
1324 | } | 1326 | } |