powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently
authorDavid Hildenbrand <david@redhat.com>
Wed, 11 Nov 2020 14:53:16 +0000 (15:53 +0100)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 19 Nov 2020 05:56:58 +0000 (16:56 +1100)
commitd6718941a2767fb383e105d257d2105fe4f15f0e
tree7a3a30e5af52d24cb847251a3fd9027d5d6b5d57
parentc74cf7a3d59a21b290fe0468f5b470d0b8ee37df
powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently

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
arch/powerpc/platforms/powernv/memtrace.c