diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2006-11-30 15:44:49 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-12-07 11:26:16 -0500 |
commit | 05f96ef1189ecbf2e8548056a0ca016e4f630cef (patch) | |
tree | 1e4ef81835135bdfae2243d8033b3b5df0a61523 | |
parent | b7dc96d75309346c1213875be68fdbbec92da5e7 (diff) |
[ARM] Allow gcc to optimise arm_add_memory a little more
For some reason, gcc was calculating meminfo.bank[meminfo.nr_banks]
repeatedly. Use a pointer to it instead.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/kernel/setup.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 29efc9f82057..75f1764933ab 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -441,16 +441,19 @@ __early_param("initrd=", early_initrd); | |||
441 | 441 | ||
442 | static void __init arm_add_memory(unsigned long start, unsigned long size) | 442 | static void __init arm_add_memory(unsigned long start, unsigned long size) |
443 | { | 443 | { |
444 | struct membank *bank; | ||
445 | |||
444 | /* | 446 | /* |
445 | * Ensure that start/size are aligned to a page boundary. | 447 | * Ensure that start/size are aligned to a page boundary. |
446 | * Size is appropriately rounded down, start is rounded up. | 448 | * Size is appropriately rounded down, start is rounded up. |
447 | */ | 449 | */ |
448 | size -= start & ~PAGE_MASK; | 450 | size -= start & ~PAGE_MASK; |
449 | 451 | ||
450 | meminfo.bank[meminfo.nr_banks].start = PAGE_ALIGN(start); | 452 | bank = &meminfo.bank[meminfo.nr_banks++]; |
451 | meminfo.bank[meminfo.nr_banks].size = size & PAGE_MASK; | 453 | |
452 | meminfo.bank[meminfo.nr_banks].node = PHYS_TO_NID(start); | 454 | bank->start = PAGE_ALIGN(start); |
453 | meminfo.nr_banks += 1; | 455 | bank->size = size & PAGE_MASK; |
456 | bank->node = PHYS_TO_NID(start); | ||
454 | } | 457 | } |
455 | 458 | ||
456 | /* | 459 | /* |