linux_dsm_epyc7002/arch/arm
Ian Campbell a7892f32cc arm: xen: foreign mapping PTEs are special.
These mappings are in fact special and require special handling in privcmd,
which already exists. Failure to mark the PTE as special on arm64 causes all
sorts of bad PTE fun. e.g.

e.g.:

BUG: Bad page map in process xl  pte:e0004077b33f53 pmd:4079575003
page:ffffffbce1a2f328 count:1 mapcount:-1 mapping:          (null) index:0x0
page flags: 0x4000000000000014(referenced|dirty)
addr:0000007fb5259000 vm_flags:040644fa anon_vma:          (null) mapping:ffffffc03a6fda58 index:0
vma->vm_ops->fault: privcmd_fault+0x0/0x38
vma->vm_file->f_op->mmap: privcmd_mmap+0x0/0x2c
CPU: 0 PID: 2657 Comm: xl Not tainted 3.12.0+ #102
Call trace:
[<ffffffc0000880f8>] dump_backtrace+0x0/0x12c
[<ffffffc000088238>] show_stack+0x14/0x1c
[<ffffffc0004b67e0>] dump_stack+0x70/0x90
[<ffffffc000125690>] print_bad_pte+0x12c/0x1bc
[<ffffffc0001268f4>] unmap_single_vma+0x4cc/0x700
[<ffffffc0001273b4>] unmap_vmas+0x68/0xb4
[<ffffffc00012c050>] unmap_region+0xcc/0x1d4
[<ffffffc00012df20>] do_munmap+0x218/0x314
[<ffffffc00012e060>] vm_munmap+0x44/0x64
[<ffffffc00012ed78>] SyS_munmap+0x24/0x34

Where unmap_single_vma contains inlined -> unmap_page_range -> zap_pud_range
-> zap_pmd_range -> zap_pte_range -> print_bad_pte.

Or:

BUG: Bad page state in process xl  pfn:4077b4d
page:ffffffbce1a2f8d8 count:0 mapcount:-1 mapping:          (null) index:0x0
page flags: 0x4000000000000014(referenced|dirty)
Modules linked in:
CPU: 0 PID: 2657 Comm: xl Tainted: G    B        3.12.0+ #102
Call trace:
[<ffffffc0000880f8>] dump_backtrace+0x0/0x12c
[<ffffffc000088238>] show_stack+0x14/0x1c
[<ffffffc0004b67e0>] dump_stack+0x70/0x90
[<ffffffc00010f798>] bad_page+0xc4/0x110
[<ffffffc00010f8b4>] free_pages_prepare+0xd0/0xd8
[<ffffffc000110e94>] free_hot_cold_page+0x28/0x178
[<ffffffc000111460>] free_hot_cold_page_list+0x38/0x60
[<ffffffc000114cf0>] release_pages+0x190/0x1dc
[<ffffffc00012c0e0>] unmap_region+0x15c/0x1d4
[<ffffffc00012df20>] do_munmap+0x218/0x314
[<ffffffc00012e060>] vm_munmap+0x44/0x64
[<ffffffc00012ed78>] SyS_munmap+0x24/0x34

x86 already gets this correct. 32-bit arm gets away with this because there is
not PTE_SPECIAL bit in the PTE there and the vm_normal_page fallback path does
the right thing.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2013-12-11 17:06:05 +00:00
..
boot ARM: SoC fixes for 3.12-rc 2013-10-13 09:59:10 -07:00
common ARM: edma: Fix clearing of unused list for DT DMA resources 2013-09-30 09:30:13 -07:00
configs ARM: multi_v7_defconfig: add SDHCI for i.MX 2013-10-02 20:54:36 -07:00
crypto ARM: 7837/3: fix Thumb-2 bug in AES assembler code 2013-09-22 11:43:38 +01:00
include xen/arm: pfn_to_mfn and mfn_to_pfn return the argument if nothing is in the p2m 2013-11-11 12:48:58 -05:00
kernel Merge branches 'sched-urgent-for-linus', 'timers-urgent-for-linus' and 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-09-28 14:22:17 -07:00
kvm ARM: kvm: rename cpu_reset to avoid name clash 2013-09-24 11:15:05 -07:00
lib ARM: 7835/2: fix modular build of xor_blocks() with NEON enabled 2013-09-09 15:24:47 +01:00
mach-at91 ARM: at91: sam9g45: shutdown ddr1 too when rebooting 2013-09-30 09:58:44 -07:00
mach-bcm ARM: bcm: Make secure API call optional 2013-08-20 10:51:39 -07:00
mach-bcm2835 reboot: arm: change reboot_mode to use enum reboot_mode 2013-07-09 10:33:29 -07:00
mach-clps711x ARM: clps711x: edb7211: Remove extra iotable_init() call 2013-08-13 23:29:16 -07:00
mach-cns3xxx reboot: arm: change reboot_mode to use enum reboot_mode 2013-07-09 10:33:29 -07:00
mach-davinci ARM: davinci: dm365 evm: fix unused variable warning 2013-09-19 14:56:03 +05:30
mach-dove ARM: SoC board updates for 3.12 2013-09-06 13:34:43 -07:00
mach-ebsa110 ARM: debug: move 8250 debug include into arch/arm/include/debug/ 2013-08-25 17:11:02 +01:00
mach-ep93xx ARM: SoC fixes for 3.12 2013-09-12 13:59:31 -07:00
mach-exynos ARM: SoC late changes for v3.12 2013-09-09 16:35:29 -07:00
mach-footbridge ARM: debug: move 8250 debug include into arch/arm/include/debug/ 2013-08-25 17:11:02 +01:00
mach-gemini ARM: debug: move 8250 debug include into arch/arm/include/debug/ 2013-08-25 17:11:02 +01:00
mach-highbank ARM: SoC late changes for v3.12 2013-09-09 16:35:29 -07:00
mach-imx ACPI and power management fixes for 3.12-rc2 2013-09-20 15:17:14 -07:00
mach-integrator ARM: mach-integrator: Add stub for pci_v3_early_init() for !CONFIG_PCI 2013-09-25 21:59:52 -07:00
mach-iop13xx ARM: debug: move 8250 debug include into arch/arm/include/debug/ 2013-08-25 17:11:02 +01:00
mach-iop32x ARM: debug: move 8250 debug include into arch/arm/include/debug/ 2013-08-25 17:11:02 +01:00
mach-iop33x ARM: debug: move 8250 debug include into arch/arm/include/debug/ 2013-08-25 17:11:02 +01:00
mach-ixp4xx ARM: debug: move 8250 debug include into arch/arm/include/debug/ 2013-08-25 17:11:02 +01:00
mach-keystone Omap fixes for the merge window that are not urgent enough 2013-08-29 19:12:04 -07:00
mach-kirkwood ARM: SoC board updates for 3.12 2013-09-06 13:34:43 -07:00
mach-ks8695 gpio: (gpio-pca953x) move header to linux/platform_data/ 2013-08-29 12:33:52 -07:00
mach-lpc32xx ARM: debug: move 8250 debug include into arch/arm/include/debug/ 2013-08-25 17:11:02 +01:00
mach-mmp ARM: SoC late changes for v3.12 2013-09-09 16:35:29 -07:00
mach-msm ARM: SoC cleanups for 3.12 2013-09-06 13:21:16 -07:00
mach-mv78xx0 ARM: SoC platform changes for 3.12 2013-09-06 13:30:06 -07:00
mach-mvebu ARM: mvebu: add missing of_node_put() to fix reference leak 2013-09-18 16:40:53 +00:00
mach-mxs ARM: mxs: pm: Include "pm.h" 2013-08-18 16:34:57 +08:00
mach-netx reboot: arm: change reboot_mode to use enum reboot_mode 2013-07-09 10:33:29 -07:00
mach-nomadik ARM: nomadik: switch to use the Nomadik I2C driver 2013-08-07 00:59:06 +02:00
mach-nspire
mach-omap1 ARM: DRA7: id: Add cpu detection support for DRA7xx based SoCs' 2013-08-13 16:58:08 +05:30
mach-omap2 ARM: OMAP2: RX-51: Add missing max_current to rx51_lp5523_led_config 2013-10-08 11:22:43 -07:00
mach-orion5x ARM: SoC board updates for 3.12 2013-09-06 13:34:43 -07:00
mach-picoxcell reboot: arm: change reboot_mode to use enum reboot_mode 2013-07-09 10:33:29 -07:00
mach-prima2 ARM: SoC platform changes for 3.12 2013-09-06 13:30:06 -07:00
mach-pxa ARM: SoC DT updates for 3.12 2013-09-06 13:26:27 -07:00
mach-realview ARM: SoC cleanups for 3.12 2013-09-06 13:21:16 -07:00
mach-rockchip
mach-rpc ARM: debug: move 8250 debug include into arch/arm/include/debug/ 2013-08-25 17:11:02 +01:00
mach-s3c24xx ARM: SAMSUNG: Remove pwm-clock infrastructure 2013-08-12 21:53:24 +02:00
mach-s3c64xx gpio: (gpio-pca953x) move header to linux/platform_data/ 2013-08-29 12:33:52 -07:00
mach-s5p64x0 ARM: SAMSUNG: Remove remaining uses of plat/regs-timer.h header 2013-08-12 21:53:24 +02:00
mach-s5pc100 ARM: SAMSUNG: Remove pwm-clock infrastructure 2013-08-12 21:53:24 +02:00
mach-s5pv210 ARM: SAMSUNG: Remove remaining uses of plat/regs-timer.h header 2013-08-12 21:53:24 +02:00
mach-sa1100 ARM: sa1100: collie.c: fall back to jedec_probe flash detection 2013-09-18 08:20:27 -07:00
mach-shark reboot: arm: change reboot_mode to use enum reboot_mode 2013-07-09 10:33:29 -07:00
mach-shmobile ARM: SoC fixes for 3.12-rc 2013-10-02 21:48:32 -07:00
mach-socfpga arm: delete __cpuinit/__CPUINIT usage from all ARM users 2013-07-14 19:36:52 -04:00
mach-spear ARM: SoC cleanups for 3.12 2013-09-06 13:21:16 -07:00
mach-sti ARM: STi: remove sti_secondary_start from INIT section. 2013-08-04 13:40:55 -07:00
mach-sunxi ARM: sunxi: Introduce Allwinner A20 support 2013-08-16 23:23:41 +02:00
mach-tegra ARM: SoC platform changes for 3.12 2013-09-06 13:30:06 -07:00
mach-u300 ARM: u300: hide submenus 2013-09-18 08:16:46 -07:00
mach-ux500 ARM: ux500: disable outer cache debug 2013-09-17 09:08:13 -07:00
mach-versatile Merge branch 'versatile/fixes' into fixes 2013-09-09 17:31:04 -07:00
mach-vexpress ARM: vexpress: tc2: fix hotplug/idle/kexec race on cluster power down 2013-09-30 09:27:36 -07:00
mach-virt
mach-vt8500 reboot: arm: change reboot_mode to use enum reboot_mode 2013-07-09 10:33:29 -07:00
mach-w90x900 reboot: arm: change reboot_mode to use enum reboot_mode 2013-07-09 10:33:29 -07:00
mach-zynq arm: Xilinx Zynq cleanup patches for v3.12 2013-08-20 15:05:31 -07:00
mm arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
net
nwfpe
oprofile
plat-iop reboot: arm: change reboot_mode to use enum reboot_mode 2013-07-09 10:33:29 -07:00
plat-omap ARM: SoC platform changes for 3.12 2013-09-06 13:30:06 -07:00
plat-orion ARM: plat-orion: add reg offset to DT irq driver stub 2013-07-25 21:07:33 +00:00
plat-pxa ARM: pxa: ssp: Check return values from phandle lookups 2013-09-09 17:14:09 -07:00
plat-samsung ARM: SoC cleanups for 3.12 2013-09-06 13:21:16 -07:00
plat-versatile arm: delete __cpuinit/__CPUINIT usage from all ARM users 2013-07-14 19:36:52 -04:00
tools
vfp ARM: add support for kernel mode NEON 2013-07-08 22:08:51 +01:00
xen arm: xen: foreign mapping PTEs are special. 2013-12-11 17:06:05 +00:00
Kconfig Linux 3.12-rc5 2013-11-08 15:28:05 -05:00
Kconfig-nommu
Kconfig.debug ARM: SoC cleanups for 3.12 2013-09-06 13:21:16 -07:00
Makefile arm, kbuild: make "make install" not depend on vmlinux 2013-10-02 22:30:35 +02:00