mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 14:52:05 +00:00
716a3dc200
Several platforms are now using the memblock_alloc+memblock_free+
memblock_remove trick to obtain memory which won't be mapped in the
kernel's page tables. Most platforms do this (correctly) in the
->reserve callback. However, OMAP has started to call these functions
outside of this callback, and this is extremely unsafe - memory will
not be unmapped, and could well be given out after memblock is no
longer responsible for its management.
So, provide arm_memblock_steal() to perform this function, and ensure
that it panic()s if it is used inappropriately. Convert everyone
over, including OMAP.
As a result, OMAP with OMAP4_ERRATA_I688 enabled will panic on boot
with this change. Mark this option as BROKEN and make it depend on
BROKEN. OMAP needs to be fixed, or 137d105d50
(ARM: OMAP4: Fix
errata i688 with MPU interconnect barriers.) reverted until such
time it can be fixed correctly.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
12 lines
245 B
C
12 lines
245 B
C
#ifndef _ASM_ARM_MEMBLOCK_H
|
|
#define _ASM_ARM_MEMBLOCK_H
|
|
|
|
struct meminfo;
|
|
struct machine_desc;
|
|
|
|
extern void arm_memblock_init(struct meminfo *, struct machine_desc *);
|
|
|
|
phys_addr_t arm_memblock_steal(phys_addr_t size, phys_addr_t align);
|
|
|
|
#endif
|