linux/arch/arm/boot/compressed
Will Deacon 238962ac71 ARM: 8191/1: decompressor: ensure I-side picks up relocated code
To speed up decompression, the decompressor sets up a flat, cacheable
mapping of memory. However, when there is insufficient space to hold
the page tables for this mapping, we don't bother to enable the caches
and subsequently skip all the cache maintenance hooks.

Skipping the cache maintenance before jumping to the relocated code
allows the processor to predict the branch and populate the I-cache
with stale data before the relocation loop has completed (since a
bootloader may have SCTLR.I set, which permits normal, cacheable
instruction fetches regardless of SCTLR.M).

This patch moves the cache maintenance check into the maintenance
routines themselves, allowing the v6/v7 versions to invalidate the
I-cache regardless of the MMU state.

Cc: <stable@vger.kernel.org>
Reported-by: Marc Carino <marc.ceeeee@gmail.com>
Tested-by: Julien Grall <julien.grall@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2014-11-13 23:45:20 +00:00
..
.gitignore ARM: simplify generation of compressed vmlinux.lds file 2014-07-01 15:01:51 +01:00
atags_to_fdt.c ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
big-endian.S
debug.S ARM: 7737/1: fix kernel decompressor compilation error with CONFIG_DEBUG_SEMIHOSTING 2013-06-05 23:32:24 +01:00
decompress.c arm: add support for LZ4-compressed kernel 2013-07-09 10:33:30 -07:00
head-sa1100.S ARM: 7743/1: compressed/head.S: work around new binutils warning 2013-06-05 23:32:27 +01:00
head-sharpsl.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head-shmobile.S ARM: shmobile: Update romImage to relocate appended DTB 2013-07-17 10:04:36 +09:00
head-xscale.S ARM: remove ixp23xx and ixp2000 platforms 2012-04-06 08:26:18 -05:00
head.S ARM: 8191/1: decompressor: ensure I-side picks up relocated code 2014-11-13 23:45:20 +00:00
libfdt_env.h ARM: zImage: allow supplementing appended DTB with traditional ATAG data 2011-09-14 13:51:59 -04:00
ll_char_wr.S
Makefile ARM: 8153/1: Enable gcov support on the ARM architecture 2014-09-26 14:39:57 +01:00
misc.c stackprotector: Introduce CONFIG_CC_STACKPROTECTOR_STRONG 2013-12-20 09:38:40 +01:00
mmcif-sh7372.c mmc: sdhi, mmcif: zboot: Correct clock disable logic 2011-08-08 16:38:04 +09:00
piggy.gzip.S arm: add support for LZO-compressed kernels 2010-01-11 09:34:05 -08:00
piggy.lz4.S arm: add support for LZ4-compressed kernel 2013-07-09 10:33:30 -07:00
piggy.lzma.S ARM: 6026/1: ARM: Add support for LZMA-compressed kernel images 2010-04-14 12:05:36 +01:00
piggy.lzo.S arm: add support for LZO-compressed kernels 2010-01-11 09:34:05 -08:00
piggy.xzkern.S ARM: 7001/2: Wire up support for the XZ decompressor 2012-03-24 09:38:52 +00:00
sdhi-sh7372.c mmc: sdhi, mmcif: zboot: Correct clock disable logic 2011-08-08 16:38:04 +09:00
sdhi-shmobile.c ARM: 6886/1: mmc, Add zboot from eSD support for SuperH Mobile ARM 2011-06-29 10:00:52 +01:00
sdhi-shmobile.h ARM: 6886/1: mmc, Add zboot from eSD support for SuperH Mobile ARM 2011-06-29 10:00:52 +01:00
string.c ARM: zImage: gather some string functions into string.c 2011-09-14 13:51:58 -04:00
vmlinux.lds.S ARM: simplify generation of compressed vmlinux.lds file 2014-07-01 15:01:51 +01:00