TencentOS-kernel/arch/powerpc
David Hildenbrand 38a3ff01ed powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently
commit d6718941a2767fb383e105d257d2105fe4f15f0e upstream.

It's very easy to crash the kernel right now by simply trying to
enable memtrace concurrently, hammering on the "enable" interface

loop.sh:
  #!/bin/bash

  dmesg --console-off

  while true; do
          echo 0x40000000 > /sys/kernel/debug/powerpc/memtrace/enable
  done

[root@localhost ~]# loop.sh &
[root@localhost ~]# loop.sh &

Resulting quickly in a kernel crash. Let's properly protect using a
mutex.

Fixes: 9d5171a8f248 ("powerpc/powernv: Enable removal of memory for in memory tracing")
Cc: stable@vger.kernel.org# v4.14+
Signed-off-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Oscar Salvador <osalvador@suse.de>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20201111145322.15793-3-david@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-03-16 16:43:34 +08:00
..
boot powerpc/boot: Fix CONFIG_PPC_MPC52XX references 2021-03-16 16:33:42 +08:00
configs vgacon: remove software scrollback support 2021-03-16 16:36:07 +08:00
crypto Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
include powerpc/8xx: Fix early debug when SMC1 is relocated 2021-03-16 16:43:34 +08:00
kernel powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter 2021-03-16 16:43:33 +08:00
kvm KVM: PPC: Book3S HV: XIVE: Fix possible oops when accessing ESB page 2021-03-16 16:41:35 +08:00
lib powerpc/64s: flush L1D after user accesses 2021-03-16 16:41:00 +08:00
math-emu Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
mm powerpc/mm: Fix verification of MMU_FTR_TYPE_44x 2021-03-16 16:43:34 +08:00
net Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
oprofile Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
perf powerpc/perf: Exclude kernel samples while counting events in user space. 2021-03-16 16:43:29 +08:00
platforms powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently 2021-03-16 16:43:34 +08:00
purgatory Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
sysdev powerpc/icp-hv: Fix missing of_node_put() in success path 2021-03-16 16:38:48 +08:00
tools Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
xmon powerpc/xmon: Change printk() to pr_cont() 2021-03-16 16:43:34 +08:00
Kbuild Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
Kconfig powerpc/rtas: Restrict RTAS requests from userspace 2021-03-16 16:40:06 +08:00
Kconfig.debug Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
Makefile powerpc: Drop -me200 addition to build flags 2021-03-16 16:42:10 +08:00
Makefile.postlink Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00