linux/arch/arm
Nathan Lynch 9cc6d9e5da ARM: 8178/1: fix set_tls for !CONFIG_KUSER_HELPERS
Joachim Eastwood reports that commit fbfb872f5f "ARM: 8148/1: flush
TLS and thumbee register state during exec" causes a boot-time crash
on a Cortex-M4 nommu system:

Freeing unused kernel memory: 68K (281e5000 - 281f6000)
Unhandled exception: IPSR = 00000005 LR = fffffff1
CPU: 0 PID: 1 Comm: swapper Not tainted 3.17.0-rc6-00313-gd2205fa30aa7 #191
task: 29834000 ti: 29832000 task.ti: 29832000
PC is at flush_thread+0x2e/0x40
LR is at flush_thread+0x21/0x40
pc : [<2800954a>] lr : [<2800953d>] psr: 4100000b
sp : 29833d60 ip : 00000000 fp : 00000001
r10: 00003cf8 r9 : 29b1f000 r8 : 00000000
r7 : 29b0bc00 r6 : 29834000 r5 : 29832000 r4 : 29832000
r3 : ffff0ff0 r2 : 29832000 r1 : 00000000 r0 : 282121f0
xPSR: 4100000b
CPU: 0 PID: 1 Comm: swapper Not tainted 3.17.0-rc6-00313-gd2205fa30aa7 #191
[<2800afa5>] (unwind_backtrace) from [<2800a327>] (show_stack+0xb/0xc)
[<2800a327>] (show_stack) from [<2800a963>] (__invalid_entry+0x4b/0x4c)

The problem is that set_tls is attempting to clear the TLS location in
the kernel-user helper page, which isn't set up on V7M.

Fix this by guarding the write to the kuser helper page with
a CONFIG_KUSER_HELPERS ifdef.

Fixes: fbfb872f5f ARM: 8148/1: flush TLS and thumbee register state during exec

Reported-by: Joachim Eastwood <manabian@gmail.com>
Tested-by: Joachim Eastwood <manabian@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2014-09-30 16:55:23 +01:00
..
boot ARM: shmobile: koelsch: Remove non-existent i2c6 pinmux 2014-08-24 11:23:28 -07:00
common Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2014-08-11 07:14:01 -07:00
configs ARM: SoC defconfig updates for 3.17 2014-08-08 11:35:11 -07:00
crypto Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2014-08-05 10:05:29 -07:00
firmware
include ARM: 8178/1: fix set_tls for !CONFIG_KUSER_HELPERS 2014-09-30 16:55:23 +01:00
kernel ARM: 8149/1: perf: Don't sleep while atomic when enabling per-cpu interrupts 2014-09-16 16:09:33 +01:00
kvm Here are the PPC and ARM changes for KVM, which I separated because 2014-08-07 11:35:30 -07:00
lib ARM: 8137/1: fix get_user BE behavior for target variable with size of 8 bytes 2014-09-12 17:38:59 +01:00
mach-at91 This is the bulk of GPIO changes for the v3.17 development 2014-08-08 18:00:35 -07:00
mach-axxia
mach-bcm ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
mach-berlin
mach-clps711x ARM: SoC cleanups for 3.17 2014-08-08 11:00:26 -07:00
mach-cns3xxx
mach-davinci ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
mach-dove
mach-ebsa110 ARM: 8113/1: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h> 2014-07-29 23:08:52 +01:00
mach-efm32
mach-ep93xx ARM: 8113/1: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h> 2014-07-29 23:08:52 +01:00
mach-exynos ARM: 8129/1: errata: work around Cortex-A15 erratum 830321 using dummy strex 2014-08-27 15:40:13 +01:00
mach-footbridge ARM: 8113/1: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h> 2014-07-29 23:08:52 +01:00
mach-gemini
mach-highbank PM / OPP: Remove ARCH_HAS_OPP 2014-07-23 00:51:30 +02:00
mach-hisi ARM: hisi: remove smp from machine descriptor 2014-07-30 22:32:21 -07:00
mach-imx ARM: imx: correct gpu2d_axi and gpu3d_axi clock setting 2014-08-18 15:05:22 +08:00
mach-integrator ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
mach-iop13xx ARM: 8113/1: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h> 2014-07-29 23:08:52 +01:00
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-keystone
mach-ks8695 ARM: 8113/1: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h> 2014-07-29 23:08:52 +01:00
mach-lpc32xx
mach-mediatek arm: add basic support for Mediatek MT6589 boards 2014-07-22 17:52:37 +02:00
mach-mmp
mach-moxart
mach-msm Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2014-08-06 21:03:53 -07:00
mach-mv78xx0
mach-mvebu ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
mach-mxs
mach-netx
mach-nomadik
mach-nspire
mach-omap1 ARM: SoC cleanups for 3.17 2014-08-08 11:00:26 -07:00
mach-omap2 Few fixes for the v3.17 merge window: 2014-08-09 08:23:27 -07:00
mach-orion5x
mach-picoxcell
mach-prima2
mach-pxa Merge branch 'akpm' (second patchbomb from Andrew Morton) 2014-08-08 15:57:47 -07:00
mach-qcom
mach-realview ARM: SoC cleanups for 3.17 2014-08-08 11:00:26 -07:00
mach-rockchip ARM: SoC device-tree changes for 3.17 2014-08-08 11:16:58 -07:00
mach-rpc ARM: 8113/1: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h> 2014-07-29 23:08:52 +01:00
mach-s3c24xx Merge branch 'akpm' (second patchbomb from Andrew Morton) 2014-08-08 15:57:47 -07:00
mach-s3c64xx ARM: SAMSUNG: Remove legacy clock code 2014-07-19 04:24:59 +09:00
mach-s5pv210 ARM: SoC cleanups for 3.17 2014-08-08 11:00:26 -07:00
mach-sa1100 ARM: 8113/1: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h> 2014-07-29 23:08:52 +01:00
mach-shmobile sh: intc: Confine SH_INTC to platforms that need it 2014-08-22 12:28:16 +09:00
mach-socfpga
mach-spear ARM: SoC driver changes for 3.17 2014-08-08 11:34:32 -07:00
mach-sti
mach-sunxi ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
mach-tegra This is the bulk of GPIO changes for the v3.17 development 2014-08-08 18:00:35 -07:00
mach-u300
mach-ux500
mach-versatile ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
mach-vexpress ARM: SoC cleanups for 3.17 2014-08-08 11:00:26 -07:00
mach-vt8500
mach-w90x900 arch/arm/mach-w90x900/cpu.c: replace obsolete strict_strto 2014-08-08 15:57:28 -07:00
mach-zynq PM / OPP: Remove ARCH_HAS_OPP 2014-07-23 00:51:30 +02:00
mm ARM: 8165/1: alignment: don't break misaligned NEON load/store 2014-09-25 15:32:57 +01:00
net net: filter: split 'struct sk_filter' into socket and bpf parts 2014-08-02 15:03:58 -07:00
nwfpe ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
oprofile Merge branch 'devel-stable' into for-next 2014-08-05 10:27:25 +01:00
plat-iop
plat-omap ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00
plat-orion
plat-pxa
plat-samsung Merge branch 'cleanup/gpio-header-removal' into next/soc 2014-07-26 18:00:40 +02:00
plat-versatile
tools
vfp ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
xen arm/xen: remove duplicate arch_gnttab_init() function 2014-08-11 11:59:14 +01:00
Kconfig Merge branch 'akpm' (second patchbomb from Andrew Morton) 2014-08-08 15:57:47 -07:00
Kconfig-nommu
Kconfig.debug ARM: SoC device-tree changes for 3.17 2014-08-08 11:16:58 -07:00
Makefile ARM: SoC platform changes for 3.17 2014-08-08 11:14:29 -07:00