diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-25 13:10:48 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-25 13:10:48 -0800 |
commit | bafb81927e13d3eb5e209f5094556336d153a694 (patch) | |
tree | fd6970f1ec6bca1dfc8102fbc7576948723ec560 /arch/xtensa/mm/init.c | |
parent | 7472e009a3f1e8b80c65aefd51716afc2e3bab8a (diff) | |
parent | b3fdfc1b4b641d372e35ced98814289bc60bc5d1 (diff) |
Merge tag 'xtensa-next-20140224' of git://github.com/czankel/xtensa-linux
Pull tensa fixes from Chris Zankel:
"This series includes fixes for potentially serious bugs in the
routines spilling processor registers to stack, as well as other
issues and compiler errors and warnings.
- allow booting xtfpga on boards with new uBoot and >128MBytes memory
- drop nonexistent GPIO32 support from fsf variant
- don't select USE_GENERIC_SMP_HELPERS
- enable common clock framework support, set up ethoc clock on xtfpga
- wire up sched_setattr and sched_getattr syscalls.
- fix system call to spill the processor registers to stack.
- improve kernel macro to spill the processor registers
- export ccount_freq symbol
- fix undefined symbol warning"
* tag 'xtensa-next-20140224' of git://github.com/czankel/xtensa-linux:
xtensa: wire up sched_setattr and sched_getattr syscalls
xtensa: xtfpga: set ethoc clock frequency
xtensa: xtfpga: use common clock framework
xtensa: support common clock framework
xtensa: no need to select USE_GENERIC_SMP_HELPERS
xtensa: fsf: drop nonexistent GPIO32 support
xtensa: don't pass high memory to bootmem allocator
xtensa: fix fast_syscall_spill_registers
xtensa: fix fast_syscall_spill_registers
xtensa: save current register frame in fast_syscall_spill_registers_fixup
xtensa: introduce spill_registers_kernel macro
xtensa: export ccount_freq
xtensa: fix warning '"CONFIG_OF" is not defined'
Diffstat (limited to 'arch/xtensa/mm/init.c')
-rw-r--r-- | arch/xtensa/mm/init.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/arch/xtensa/mm/init.c b/arch/xtensa/mm/init.c index 479d7537a32a..aff108df92d3 100644 --- a/arch/xtensa/mm/init.c +++ b/arch/xtensa/mm/init.c @@ -90,7 +90,7 @@ int __init mem_reserve(unsigned long start, unsigned long end, int must_exist) /* - * Initialize the bootmem system and give it all the memory we have available. + * Initialize the bootmem system and give it all low memory we have available. */ void __init bootmem_init(void) @@ -142,9 +142,14 @@ void __init bootmem_init(void) /* Add all remaining memory pieces into the bootmem map */ - for (i=0; i<sysmem.nr_banks; i++) - free_bootmem(sysmem.bank[i].start, - sysmem.bank[i].end - sysmem.bank[i].start); + for (i = 0; i < sysmem.nr_banks; i++) { + if (sysmem.bank[i].start >> PAGE_SHIFT < max_low_pfn) { + unsigned long end = min(max_low_pfn << PAGE_SHIFT, + sysmem.bank[i].end); + free_bootmem(sysmem.bank[i].start, + end - sysmem.bank[i].start); + } + } } |