linux-stable/arch/arm
Mathieu Desnoyers 775ab7d3d1 ARM: 8834/1: Fix: kprobes: optimized kprobes illegal instruction
commit 0ac569bf6a upstream.

commit e46daee53b ("ARM: 8806/1: kprobes: Fix false positive with
FORTIFY_SOURCE") introduced a regression in optimized kprobes. It
triggers "invalid instruction" oopses when using kprobes instrumentation
through lttng and perf. This commit was introduced in kernel v4.20, and
has been backported to stable kernels 4.19 and 4.14.

This crash was also reported by Hongzhi Song on the redhat bugzilla
where the patch was originally introduced.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=1639397
Link: https://bugs.lttng.org/issues/1174
Link: https://lore.kernel.org/lkml/342740659.2887.1549307721609.JavaMail.zimbra@efficios.com

Fixes: e46daee53b ("ARM: 8806/1: kprobes: Fix false positive with FORTIFY_SOURCE")
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reported-by: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
Tested-by: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
Acked-by: Kees Cook <keescook@chromium.org>
Cc: Robert Berger <Robert.Berger@ReliableEmbeddedSystems.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: William Cohen <wcohen@redhat.com>
Cc: Laura Abbott <labbott@redhat.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: <stable@vger.kernel.org> # v4.14+
Cc: linux-arm-kernel@lists.infradead.org
Cc: patches@armlinux.org.uk
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-02-27 10:08:49 +01:00
..
boot ARM: OMAP5+: Fix inverted nirq pin interrupts with irq_set_type 2019-02-20 10:25:44 +01:00
common ARM: Always build secure_cntvoff.S on ARM V7 to fix shmobile !SMP build 2018-06-23 18:26:48 -07:00
configs ARM: imx_v6_v7_defconfig: Select CONFIG_TMPFS_POSIX_ACL 2018-11-21 09:19:09 +01:00
crypto crypto: speck - remove Speck 2018-11-13 11:08:46 -08:00
firmware ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
include ARM: spectre-v2: per-CPU vtables to work around big.Little systems 2019-02-20 10:25:38 +01:00
kernel ARM: spectre-v2: per-CPU vtables to work around big.Little systems 2019-02-20 10:25:38 +01:00
kvm ARM: KVM: Correctly order SGI register entries in the cp15 array 2018-10-09 11:55:47 +01:00
lib ARM: 8797/1: spectre-v1.1: harden __copy_to_user 2019-02-20 10:25:37 +01:00
mach-actions
mach-alpine
mach-artpec
mach-asm9260
mach-aspeed
mach-at91 ARM: Device-tree updates 2018-08-23 14:02:22 -07:00
mach-axxia arch: define the ARCH_DMA_ADDR_T_64BIT config symbol in lib/Kconfig 2018-05-09 06:57:04 +02:00
mach-bcm PCI: controller: Move PCI_DOMAINS selection to arch Kconfig 2018-06-26 15:37:37 -05:00
mach-berlin ARM: berlin: switch to SPDX license identifier 2018-05-24 14:49:09 +08:00
mach-clps711x
mach-cns3xxx ARM: cns3xxx: Fix writing to wrong PCI config registers after alignment 2019-02-06 17:30:11 +01:00
mach-davinci DaVinci SoC updates for v4.19 2018-07-14 14:16:26 -07:00
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx sound updates for 4.18 2018-06-06 09:08:38 -07:00
mach-exynos ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
mach-footbridge treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
mach-gemini
mach-highbank arch: define the ARCH_DMA_ADDR_T_64BIT config symbol in lib/Kconfig 2018-05-09 06:57:04 +02:00
mach-hisi ARM: hisi: handle of_iomap and fix missing of_node_put 2018-07-16 17:36:50 +01:00
mach-imx ARM: imx: update the cpu power up timing setting on i.mx6sx 2019-01-13 09:50:56 +01:00
mach-integrator gpio: pl061: handle failed allocations 2019-02-20 10:25:43 +01:00
mach-iop13xx
mach-iop32x ARM: iop32x/n2100: fix PCI IRQ mapping 2019-02-15 08:10:12 +01:00
mach-iop33x
mach-ixp4xx treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
mach-keystone ARM: keystone: fix platform_domain_notifier array overrun 2018-05-14 09:24:29 -07:00
mach-ks8695 i2c: gpio: move header to platform_data 2018-05-17 16:27:09 +02:00
mach-lpc18xx
mach-lpc32xx
mach-mediatek
mach-meson ARM: meson: merge Kconfig symbol MACH_MESON8B into MACH_MESON8 2018-05-23 10:08:13 -07:00
mach-mmp ARM: mmp/mmp2: fix cpu_is_mmp2() on mmp2-dt 2018-12-19 19:19:51 +01:00
mach-moxart
mach-mv78xx0
mach-mvebu ARM: mvebu: convert secondary CPU clock sync to hotplug state 2018-06-27 08:40:29 +02:00
mach-mxs
mach-netx
mach-nomadik
mach-npcm
mach-nspire
mach-omap1 ARM: OMAP1: ams-delta: Fix possible use of uninitialized field 2018-12-17 09:24:30 +01:00
mach-omap2 ARM: OMAP5+: Fix inverted nirq pin interrupts with irq_set_type 2019-02-20 10:25:44 +01:00
mach-orion5x
mach-oxnas
mach-picoxcell
mach-prima2
mach-pxa ARM: pxa: avoid section mismatch warning 2019-02-12 19:47:09 +01:00
mach-qcom
mach-realview
mach-rockchip ARM: rockchip: Force CONFIG_PM on Rockchip systems 2018-08-24 08:50:23 -07:00
mach-rpc mm: do not initialize TLB stack vma's with vma_init() 2018-08-01 13:43:38 -07:00
mach-s3c24xx ARM: s3c24xx: Fix typo in guard macro of s3c2412.h 2018-06-25 18:39:18 +02:00
mach-s3c64xx regulator: gpio: Revert 2018-06-07 14:23:08 +01:00
mach-s5pv210
mach-sa1100 Merge branch 'i2c/for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-06-14 16:21:46 +09:00
mach-shmobile ARM: shmobile: Always enable ARCH_TIMER on SoCs with A7 and/or A15 2018-07-20 13:44:10 +02:00
mach-socfpga PCI: controller: Move PCI_DOMAINS selection to arch Kconfig 2018-06-26 15:37:37 -05:00
mach-spear
mach-sti
mach-stm32 ARM: stm32: Don't select DMA unconditionally on STM32MP157C 2018-05-25 15:26:38 -07:00
mach-sunxi ARM: sun8i: smp: Add support for A83T 2018-05-08 15:00:20 +02:00
mach-tango ARM: tango: Improve ARCH_MULTIPLATFORM compatibility 2019-02-15 08:10:12 +01:00
mach-tegra ARM: SoC platform updates 2018-06-11 17:49:09 -07:00
mach-u300
mach-uniphier ARM: uniphier: select RESET_CONTROLLER 2018-07-31 19:04:41 -07:00
mach-ux500 ARM: ux500: Cut down Kconfig options 2018-05-04 11:02:52 +02:00
mach-versatile
mach-vexpress treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
mach-vt8500
mach-w90x900
mach-zx
mach-zynq
mm ARM: fix the cockup in the previous patch 2019-02-20 10:25:38 +01:00
net ARM: net: bpf: improve 64-bit ALU implementation 2018-07-13 15:26:42 +02:00
nwfpe
oprofile
plat-iop
plat-omap ARM/time: Remove read_boot_clock64() 2018-07-20 00:02:41 +02:00
plat-orion
plat-pxa ARM: pxa: change SSP DMA channels allocation 2018-06-18 21:32:41 +02:00
plat-samsung headers: fix build error in arch/arm/plat-samsung/adc.c, add <linux/mod_devicetable.h> 2018-07-08 15:19:04 +02:00
plat-versatile
probes ARM: 8834/1: Fix: kprobes: optimized kprobes illegal instruction 2019-02-27 10:08:49 +01:00
tools ARM: 8787/1: wire up io_pgetevents syscall 2018-09-19 10:44:11 +01:00
vdso arm: port KCOV to arm 2018-06-15 07:55:24 +09:00
vfp ARM: 8810/1: vfp: Fix wrong assignement to ufp_exc 2019-02-20 10:25:37 +01:00
xen xen: share start flags between PV and PVH 2018-06-19 13:51:00 +02:00
Kconfig ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
Kconfig-nommu
Kconfig.debug ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
Makefile Kbuild updates for v4.19 (2nd) 2018-08-25 13:40:38 -07:00