TencentOS-kernel/arch/powerpc
Alexey Kardashevskiy 9ed8dbbefb powerpc/perf: Fix crashes with generic_compat_pmu & BHRB
commit b460b512417ae9c8b51a3bdcc09020cd6c60ff69 upstream.

The bhrb_filter_map ("The Branch History Rolling Buffer") callback is
only defined in raw CPUs' power_pmu structs. The "architected" CPUs
use generic_compat_pmu, which does not have this callback, and crashes
occur if a user tries to enable branch stack for an event.

This add a NULL pointer check for bhrb_filter_map() which behaves as
if the callback returned an error.

This does not add the same check for config_bhrb() as the only caller
checks for cpuhw->bhrb_users which remains zero if bhrb_filter_map==0.

Fixes: be80e758d0c2 ("powerpc/perf: Add generic compat mode pmu driver")
Cc: stable@vger.kernel.org # v5.2+
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200602025612.62707-1-aik@ozlabs.ru
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-03-16 16:35:13 +08:00
..
boot powerpc/boot: Fix CONFIG_PPC_MPC52XX references 2021-03-16 16:33:42 +08:00
configs scsi: sr: remove references to BLK_DEV_SR_VENDOR, leave it enabled 2021-03-16 16:31:54 +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 KVM: Pass MMU notifier range flags to kvm_unmap_hva_range() 2021-03-16 16:34:42 +08:00
kernel powerpc/64s: Don't init FSCR_DSCR in __init_FSCR() 2021-03-16 16:34:43 +08:00
kvm KVM: Pass MMU notifier range flags to kvm_unmap_hva_range() 2021-03-16 16:34:42 +08:00
lib Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +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: Allow 4224 bytes of stack expansion for the signal frame 2021-03-16 16:34:04 +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: Fix crashes with generic_compat_pmu & BHRB 2021-03-16 16:35:13 +08:00
platforms powerpc/spufs: add CONFIG_COREDUMP dependency 2021-03-16 16:34:53 +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/xive: Ignore kmemleak false positives 2021-03-16 16:34:46 +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: Restrict when kernel is locked down 2021-03-16 16:28:45 +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/kasan: Fix stack overflow by increasing THREAD_SHIFT 2021-03-16 16:29:58 +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 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.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