diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/i386/kernel/setup.c | 16 | ||||
-rw-r--r-- | arch/x86_64/kernel/e820.c | 16 |
2 files changed, 16 insertions, 16 deletions
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index fa0c69eb937a..f3d808451d25 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c | |||
@@ -1300,7 +1300,7 @@ legacy_init_iomem_resources(struct resource *code_resource, struct resource *dat | |||
1300 | */ | 1300 | */ |
1301 | static void __init register_memory(void) | 1301 | static void __init register_memory(void) |
1302 | { | 1302 | { |
1303 | unsigned long gapstart, gapsize; | 1303 | unsigned long gapstart, gapsize, round; |
1304 | unsigned long long last; | 1304 | unsigned long long last; |
1305 | int i; | 1305 | int i; |
1306 | 1306 | ||
@@ -1345,14 +1345,14 @@ static void __init register_memory(void) | |||
1345 | } | 1345 | } |
1346 | 1346 | ||
1347 | /* | 1347 | /* |
1348 | * Start allocating dynamic PCI memory a bit into the gap, | 1348 | * See how much we want to round up: start off with |
1349 | * aligned up to the nearest megabyte. | 1349 | * rounding to the next 1MB area. |
1350 | * | ||
1351 | * Question: should we try to pad it up a bit (do something | ||
1352 | * like " + (gapsize >> 3)" in there too?). We now have the | ||
1353 | * technology. | ||
1354 | */ | 1350 | */ |
1355 | pci_mem_start = (gapstart + 0xfffff) & ~0xfffff; | 1351 | round = 0x100000; |
1352 | while ((gapsize >> 4) > round) | ||
1353 | round += round; | ||
1354 | /* Fun with two's complement */ | ||
1355 | pci_mem_start = (gapstart + round) & -round; | ||
1356 | 1356 | ||
1357 | printk("Allocating PCI resources starting at %08lx (gap: %08lx:%08lx)\n", | 1357 | printk("Allocating PCI resources starting at %08lx (gap: %08lx:%08lx)\n", |
1358 | pci_mem_start, gapstart, gapsize); | 1358 | pci_mem_start, gapstart, gapsize); |
diff --git a/arch/x86_64/kernel/e820.c b/arch/x86_64/kernel/e820.c index 116ac5f53dce..bb0ae18ec02b 100644 --- a/arch/x86_64/kernel/e820.c +++ b/arch/x86_64/kernel/e820.c | |||
@@ -567,7 +567,7 @@ unsigned long pci_mem_start = 0xaeedbabe; | |||
567 | */ | 567 | */ |
568 | __init void e820_setup_gap(void) | 568 | __init void e820_setup_gap(void) |
569 | { | 569 | { |
570 | unsigned long gapstart, gapsize; | 570 | unsigned long gapstart, gapsize, round; |
571 | unsigned long last; | 571 | unsigned long last; |
572 | int i; | 572 | int i; |
573 | int found = 0; | 573 | int found = 0; |
@@ -604,14 +604,14 @@ __init void e820_setup_gap(void) | |||
604 | } | 604 | } |
605 | 605 | ||
606 | /* | 606 | /* |
607 | * Start allocating dynamic PCI memory a bit into the gap, | 607 | * See how much we want to round up: start off with |
608 | * aligned up to the nearest megabyte. | 608 | * rounding to the next 1MB area. |
609 | * | ||
610 | * Question: should we try to pad it up a bit (do something | ||
611 | * like " + (gapsize >> 3)" in there too?). We now have the | ||
612 | * technology. | ||
613 | */ | 609 | */ |
614 | pci_mem_start = (gapstart + 0xfffff) & ~0xfffff; | 610 | round = 0x100000; |
611 | while ((gapsize >> 4) > round) | ||
612 | round += round; | ||
613 | /* Fun with two's complement */ | ||
614 | pci_mem_start = (gapstart + round) & -round; | ||
615 | 615 | ||
616 | printk(KERN_INFO "Allocating PCI resources starting at %lx (gap: %lx:%lx)\n", | 616 | printk(KERN_INFO "Allocating PCI resources starting at %lx (gap: %lx:%lx)\n", |
617 | pci_mem_start, gapstart, gapsize); | 617 | pci_mem_start, gapstart, gapsize); |