linux/arch/arm/plat-omap
Russell King 716a3dc200 ARM: Add arm_memblock_steal() to allocate memory away from the kernel
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>
2012-01-13 15:02:35 +00:00
..
include/plat Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu 2012-01-10 11:08:21 -08:00
clock.c arm: Add export.h to ARM specific files as required. 2011-10-31 19:30:50 -04:00
common.c ARM: OMAP: PM: Add support to allocate the memory for secure RAM 2011-12-08 11:29:00 -08:00
counter_32k.c ARM: 7205/2: sched_clock: allow sched_clock to be selected at runtime 2011-12-18 23:00:26 +00:00
debug-devices.c ARM: gpio: convert includes of mach/gpio.h and asm/gpio.h to linux/gpio.h 2011-08-08 14:27:41 +01:00
debug-leds.c ARM: gpio: convert includes of mach/gpio.h and asm/gpio.h to linux/gpio.h 2011-08-08 14:27:41 +01:00
devices.c ARM: Add arm_memblock_steal() to allocate memory away from the kernel 2012-01-13 15:02:35 +00:00
dma.c ARM: OMAP2+: DMA: Workaround for invalid destination position 2011-12-09 13:38:00 -08:00
dmtimer.c ARM: OMAP: dmtimer: Include linux/module.h 2011-11-04 17:41:06 -07:00
fb.c Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux 2010-10-26 10:02:39 -07:00
fb.h OMAP: plat-omap: Fix static function warnings 2010-10-08 10:12:38 -07:00
i2c.c ARM: OMAP: I2C: Fix omap_register_i2c_bus() return value on success 2011-11-04 17:41:07 -07:00
Kconfig ARM: GIC: Make MULTI_IRQ_HANDLER mandatory 2011-11-15 18:14:02 +00:00
mailbox.c arm: fix implicit module.h users by adding it to arch/arm as required. 2011-10-31 19:30:50 -04:00
Makefile ARM: OMAP: am33xx: Update common OMAP machine specific sources 2011-12-13 10:46:43 -08:00
mcbsp.c ARM: OMAP: mcbsp: Start generalize signal muxing functions 2011-09-26 17:49:07 -07:00
mux.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
ocpi.c [ARM] Convert asm/io.h to linux/io.h 2008-09-06 12:10:45 +01:00
omap_device.c Merge branch 'fixes-modulesplit' into fixes 2011-11-07 12:27:23 -08:00
omap-pm-noop.c ARM: OMAP: change get_context_loss_count ret value to int 2011-11-04 17:41:07 -07:00
sram.c power management changes for omap and imx 2012-01-09 14:39:59 -08:00
sram.h OMAP: plat-omap: Fix static function warnings 2010-10-08 10:12:38 -07:00
usb.c omap: Move omap1 USB platform init code into mach-omap1/usb.c 2010-07-05 16:31:30 +03:00