android_kernel_motorola_sm6225/arch/arm
Konstantin Khlebnikov 811a2407a3 ARM: 8115/1: LPAE: reduce damage caused by idmap to virtual memory layout
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>
2014-07-29 13:00:04 +01:00
..
boot ARM: SoC fixes for 3.16 2014-06-19 17:53:20 -10:00
common ARM: 8068/1: scoop: Remove unused variable 2014-06-17 14:46:55 +01:00
configs ARM: multi_v7_defconfig: re-enable SDHCI drivers 2014-06-17 17:09:47 +02:00
crypto
firmware
include Merge branch 'kprobes-test-fixes' of git://git.linaro.org/people/tixy/kernel into fixes 2014-07-12 13:59:24 +01:00
kernel ARM: 8100/1: Fix preemption disable in iwmmxt_task_enable() 2014-07-18 12:30:14 +01:00
kvm At over 200 commits, covering almost all supported architectures, this 2014-06-04 08:47:12 -07:00
lib
mach-at91 ARM: at91: fix at91_sysirq_mask_rtc for sam9x5 SoCs 2014-06-06 16:08:08 -07:00
mach-axxia ARM: Add platform support for LSI AXM55xx SoC 2014-05-23 18:18:39 +02:00
mach-bcm ARM: use menuconfig for sub-arch menus 2014-06-17 17:09:48 +02:00
mach-berlin ARM: use menuconfig for sub-arch menus 2014-06-17 17:09:48 +02:00
mach-clps711x ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
mach-cns3xxx ARM: use menuconfig for sub-arch menus 2014-06-17 17:09:48 +02:00
mach-davinci ARM: Remove ARCH_HAS_CPUFREQ config option 2014-06-17 17:09:39 +02:00
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx
mach-exynos ARM: use menuconfig for sub-arch menus 2014-06-17 17:09:48 +02:00
mach-footbridge ARM: 8025/1: Get rid of meminfo 2014-06-01 01:17:12 +01:00
mach-gemini
mach-highbank ARM: Remove ARCH_HAS_CPUFREQ config option 2014-06-17 17:09:39 +02:00
mach-hisi
mach-imx Merge branch 'kprobes-test-fixes' of git://git.linaro.org/people/tixy/kernel into fixes 2014-07-12 13:59:24 +01:00
mach-integrator ARM: integrator: fix section mismatch problem 2014-06-17 17:09:38 +02:00
mach-iop13xx ARM: iop13xx: fix msi support with sparse IRQ 2014-05-26 17:45:09 +02:00
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-keystone ARM: keystone requires ARM_PATCH_PHYS_VIRT 2014-06-17 17:09:22 +02:00
mach-kirkwood mvebu SoC changes for v3.16 2014-05-19 21:59:55 -07:00
mach-ks8695
mach-lpc32xx mmc: mmci: Enforce DMA configuration through DT 2014-06-02 11:20:25 +02:00
mach-mmp
mach-moxart ARM: use menuconfig for sub-arch menus 2014-06-17 17:09:48 +02:00
mach-msm Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-mv78xx0
mach-mvebu ARM: use menuconfig for sub-arch menus 2014-06-17 17:09:48 +02:00
mach-mxs
mach-netx
mach-nomadik ARM: use menuconfig for sub-arch menus 2014-06-17 17:09:48 +02:00
mach-nspire
mach-omap1 ARM: OMAP: replace checks for CONFIG_USB_GADGET_OMAP 2014-05-16 14:14:25 -07:00
mach-omap2 Merge branch 'kprobes-test-fixes' of git://git.linaro.org/people/tixy/kernel into fixes 2014-07-12 13:59:24 +01:00
mach-orion5x ARM: SoC updates for 3.16 (part 2) 2014-06-11 11:03:24 -07:00
mach-picoxcell
mach-prima2 ARM: use menuconfig for sub-arch menus 2014-06-17 17:09:48 +02:00
mach-pxa pwm: Changes for v3.16-rc1 2014-06-11 14:06:55 -07:00
mach-qcom ARM: use menuconfig for sub-arch menus 2014-06-17 17:09:48 +02:00
mach-realview Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-rockchip Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into next 2014-06-05 15:57:04 -07:00
mach-rpc
mach-s3c24xx ARM: samsung: make SAMSUNG_DMADEV optional 2014-06-17 17:09:37 +02:00
mach-s3c64xx ARM: samsung: make SAMSUNG_DMADEV optional 2014-06-17 17:09:37 +02:00
mach-s5p64x0 ARM: samsung: make SAMSUNG_DMADEV optional 2014-06-17 17:09:37 +02:00
mach-s5pc100 ARM: samsung: make SAMSUNG_DMADEV optional 2014-06-17 17:09:37 +02:00
mach-s5pv210 ARM: samsung: make SAMSUNG_DMADEV optional 2014-06-17 17:09:37 +02:00
mach-sa1100 ARM: 8085/1: sa1100: collie: add top boot mtd partition 2014-06-29 10:29:34 +01:00
mach-shmobile ARM: SoC fixes for 3.16 2014-06-19 17:53:20 -10:00
mach-socfpga ARM: l2c: socfpga: convert to generic l2c OF initialisation 2014-05-30 00:50:04 +01:00
mach-spear ARM: Remove ARCH_HAS_CPUFREQ config option 2014-06-17 17:09:39 +02:00
mach-sti Merge branch 'kprobes-test-fixes' of git://git.linaro.org/people/tixy/kernel into fixes 2014-07-12 13:59:24 +01:00
mach-sunxi ARM: sunxi: allow building without reset controller 2014-05-26 21:27:22 +02:00
mach-tegra ARM: SoC fixes for 3.16 2014-06-19 17:53:20 -10:00
mach-u300 ARM: use menuconfig for sub-arch menus 2014-06-17 17:09:48 +02:00
mach-ux500 Merge branch 'kprobes-test-fixes' of git://git.linaro.org/people/tixy/kernel into fixes 2014-07-12 13:59:24 +01:00
mach-versatile
mach-vexpress Merge branch 'kprobes-test-fixes' of git://git.linaro.org/people/tixy/kernel into fixes 2014-07-12 13:59:24 +01:00
mach-vt8500 ARM: Remove ARCH_HAS_CPUFREQ config option 2014-06-17 17:09:39 +02:00
mach-w90x900
mach-zynq ARM: Remove ARCH_HAS_CPUFREQ config option 2014-06-17 17:09:39 +02:00
mm ARM: 8115/1: LPAE: reduce damage caused by idmap to virtual memory layout 2014-07-29 13:00:04 +01:00
net net: filter: get rid of BPF_S_* enum 2014-06-01 22:16:58 -07:00
nwfpe
oprofile
plat-iop
plat-omap ARM: SoC cleanups for 3.16 2014-06-02 16:14:07 -07:00
plat-orion
plat-pxa
plat-samsung ARM: SoC fixes for 3.16 2014-06-19 17:53:20 -10:00
plat-versatile
tools
vfp Merge branches 'alignment', 'fixes', 'l2c' (early part) and 'misc' into for-next 2014-06-05 12:35:52 +01:00
xen
Kconfig ARM: 8112/1: only select ARM_PATCH_PHYS_VIRT if MMU is enabled 2014-07-24 14:29:13 +01:00
Kconfig-nommu
Kconfig.debug Samsung Exynos updates for 3.16 2014-05-30 21:44:49 -07:00
Makefile ARM: Add platform support for LSI AXM55xx SoC 2014-05-23 18:18:39 +02:00