Commit 05f96ef1189ecbf2e8548056a0ca016e4f630cef

Authored by Russell King
Committed by Russell King
1 parent b7dc96d753

[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 /*