android_kernel_google_msm/arch/arm
Konstantin Khlebnikov 2e926a6b96 ARM: 8115/1: LPAE: reduce damage caused by idmap to virtual memory layout
commit 811a2407a3 upstream.

On LPAE, each level 1 (pgd) page table entry maps 1GiB, and the level 2
(pmd) entries map 2MiB.

When the identity mapping is created on LPAE, the pgd pointers are copied
from the swapper_pg_dir.  If we find that we need to modify the contents
of a pmd, we allocate a new empty pmd table and insert it into the
appropriate 1GB slot, before then filling it with the identity mapping.

However, if the 1GB slot covers the kernel lowmem mappings, we obliterate
those mappings.

When replacing a PMD, first copy the old PMD contents to the new PMD, so
that we preserve the existing mappings, particularly the mappings of the
kernel itself.

[rewrote commit message and added code comment -- rmk]

Fixes: ae2de10173 ("ARM: LPAE: Add identity mapping support for the 3-level page table format")
Signed-off-by: Konstantin Khlebnikov <k.khlebnikov@samsung.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-08-07 12:00:10 -07:00
..
boot ARM: 7743/1: compressed/head.S: work around new binutils warning 2014-04-14 06:44:20 -07:00
common ARM: 7377/1: vic: re-read status register before dispatching each IRQ handler 2012-04-10 09:27:42 +01:00
configs mmc: at91/avr32/atmel-mci: fix DMA-channel leak on module unload 2013-05-07 19:51:57 -07:00
include/asm ARM: 8051/1: put_user: fix possible data corruption in put_user 2014-06-11 12:04:11 -07:00
kernel ARM: stacktrace: avoid listing stacktrace functions in stacktrace 2014-06-30 20:01:33 -07:00
lib ARM: 7670/1: fix the memset fix 2013-11-20 10:43:19 -08:00
mach-at91 ARM: at91: smc: bug fix in sam9_smc_cs_read() 2014-02-06 11:05:47 -08:00
mach-bcmring ARM: bcmring: fix UART declarations 2012-04-18 21:21:45 -07:00
mach-clps711x
mach-cns3xxx ARM: cns3xxx: fix mapping of private memory region 2013-04-05 10:04:35 -07:00
mach-davinci
mach-dove ARM: Orion: Set eth packet size csum offload limit 2014-04-14 06:44:20 -07:00
mach-ebsa110
mach-ep93xx
mach-exynos Revert: ARM: SAMSUNG: Add naming of s3c64xx-spi devices 2012-11-05 09:50:42 +01:00
mach-footbridge ARM: footbridge: fix VGA initialisation 2014-04-14 06:44:20 -07:00
mach-gemini
mach-h720x
mach-highbank
mach-imx ARM: imx6: spin the cpu until hardware takes it down 2012-09-14 10:00:05 -07:00
mach-integrator ARM: integrator_cp: Set LCD{0,1} enable lines when turning on CLCD 2013-12-04 10:50:13 -08:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx ixp4xx: fix compilation by adding gpiolib support 2012-06-10 00:36:08 +09:00
mach-ixp23xx
mach-ixp2000
mach-kirkwood ARM: Orion: Set eth packet size csum offload limit 2014-04-14 06:44:20 -07:00
mach-ks8695
mach-l7200/include/mach
mach-lpc32xx
mach-mmp
mach-msm ARM: msm: Fix gic irqdomain support 2012-04-23 16:13:27 -07:00
mach-mv78xx0 ARM: Orion: Set eth packet size csum offload limit 2014-04-14 06:44:20 -07:00
mach-mxs
mach-netx
mach-nomadik
mach-omap1 ARM: OMAP1: Amstrad Delta: Fix wrong IRQ base in FIQ handler 2012-05-04 09:53:09 -07:00
mach-omap2 ARM: OMAP2+: Fix parser-bug in platform muxing code 2014-07-09 10:51:20 -07:00
mach-orion5x ARM: Orion: Set eth packet size csum offload limit 2014-04-14 06:44:20 -07:00
mach-picoxcell
mach-pnx4008
mach-prima2 ARM: PRIMA2: fix irq domain size and IRQ mask of internal interrupt controller 2012-05-16 21:52:13 -07:00
mach-pxa ARM: pxa: prevent PXA270 occasional reboot freezes 2014-04-14 06:44:20 -07:00
mach-realview ARM: 7607/1: realview: fix private peripheral memory base for EB rev. B boards 2013-01-11 09:07:16 -08:00
mach-rpc
mach-s3c24xx ARM: samsung: fix assembly syntax for new gas 2013-02-28 06:59:04 -08:00
mach-s3c64xx
mach-s3c2410
mach-s3c2412
mach-s3c2440
mach-s5p64x0 Revert: ARM: SAMSUNG: Add naming of s3c64xx-spi devices 2012-11-05 09:50:42 +01:00
mach-s5pc100 Revert: ARM: SAMSUNG: Add naming of s3c64xx-spi devices 2012-11-05 09:50:42 +01:00
mach-s5pv210 Revert: ARM: SAMSUNG: Add naming of s3c64xx-spi devices 2012-11-05 09:50:42 +01:00
mach-sa1100 ARM: 7991/1: sa1100: fix compile problem on Collie 2014-03-23 21:37:05 -07:00
mach-shark
mach-shmobile ARM: shmobile: mackerel: Fix coherent DMA mask 2014-01-15 15:27:11 -08:00
mach-spear3xx
mach-spear6xx
mach-tegra ARM: tegra: make tegra_cpu_reset_handler_enable() __init 2012-07-16 09:03:20 -07:00
mach-u300 ARM: u300: fix ages old copy/paste bug 2014-04-14 06:44:20 -07:00
mach-ux500 arch/arm/mach-ux500/mbox-db5500.c: world-writable sysfs fifo file 2012-04-25 21:26:34 -07:00
mach-versatile ARM: PCI: versatile: Fix SMAP register offsets 2013-09-26 17:15:30 -07:00
mach-vexpress
mach-vt8500
mach-w90x900 ARM: w90x900: fix legacy assembly syntax 2014-04-14 06:44:20 -07:00
mach-zynq
mm ARM: 8115/1: LPAE: reduce damage caused by idmap to virtual memory layout 2014-08-07 12:00:10 -07:00
net
nwfpe
oprofile
plat-iop
plat-mxc
plat-nomadik
plat-omap ARM: OMAP: counter: add locking to read_persistent_clock 2012-12-03 11:47:23 -08:00
plat-orion ARM: Orion: Set eth packet size csum offload limit 2014-04-14 06:44:20 -07:00
plat-pxa
plat-s3c24xx ARM: S3C24XX: Fix s3c2410_dma_enqueue parameters 2012-09-14 10:00:04 -07:00
plat-s5p ARM: SAMSUNG: Update default rate for xusbxti clock 2012-07-29 08:04:21 -07:00
plat-samsung ARM: samsung: fix assembly syntax for new gas 2013-02-28 06:59:04 -08:00
plat-spear
plat-versatile
tools
vfp ARM: VFP: fix emulation of second VFP instruction 2013-03-14 11:29:41 -07:00
Kconfig ARM: 7791/1: a.out: remove partial a.out support 2014-04-14 06:44:21 -07:00
Kconfig-nommu
Kconfig.debug
Makefile ARM: 7513/1: Make sure dtc is built before running it 2012-10-02 10:29:51 -07:00