Commit 05f96ef1189ecbf2e8548056a0ca016e4f630cef
Committed by
Russell King
1 parent
b7dc96d753
Exists in
master
and in
7 other branches
[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>
Showing 1 changed file with 7 additions and 4 deletions Side-by-side Diff
arch/arm/kernel/setup.c
... | ... | @@ -441,16 +441,19 @@ |
441 | 441 | |
442 | 442 | static void __init arm_add_memory(unsigned long start, unsigned long size) |
443 | 443 | { |
444 | + struct membank *bank; | |
445 | + | |
444 | 446 | /* |
445 | 447 | * Ensure that start/size are aligned to a page boundary. |
446 | 448 | * Size is appropriately rounded down, start is rounded up. |
447 | 449 | */ |
448 | 450 | size -= start & ~PAGE_MASK; |
449 | 451 | |
450 | - meminfo.bank[meminfo.nr_banks].start = PAGE_ALIGN(start); | |
451 | - meminfo.bank[meminfo.nr_banks].size = size & PAGE_MASK; | |
452 | - meminfo.bank[meminfo.nr_banks].node = PHYS_TO_NID(start); | |
453 | - meminfo.nr_banks += 1; | |
452 | + bank = &meminfo.bank[meminfo.nr_banks++]; | |
453 | + | |
454 | + bank->start = PAGE_ALIGN(start); | |
455 | + bank->size = size & PAGE_MASK; | |
456 | + bank->node = PHYS_TO_NID(start); | |
454 | 457 | } |
455 | 458 | |
456 | 459 | /* |