linux_dsm_epyc7002/arch/x86/kernel
Jiri Olsa af91568e76 perf/x86/intel/uncore: Make sure only uncore events are collected
The uncore_collect_events functions assumes that event group
might contain only uncore events which is wrong, because it
might contain any type of events.

This bug leads to uncore framework touching 'not' uncore events,
which could end up all sorts of bugs.

One was triggered by Vince's perf fuzzer, when the uncore code
touched breakpoint event private event space as if it was uncore
event and caused BUG:

   BUG: unable to handle kernel paging request at ffffffff82822068
   IP: [<ffffffff81020338>] uncore_assign_events+0x188/0x250
   ...

The code in uncore_assign_events() function was looking for
event->hw.idx data while the event was initialized as a
breakpoint with different members in event->hw union.

This patch forces uncore_collect_events() to collect only uncore
events.

Reported-by: Vince Weaver <vince@deater.net>
Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Yan, Zheng <zheng.z.yan@intel.com>
Cc: <stable@vger.kernel.org>
Link: http://lkml.kernel.org/r/1418243031-20367-2-git-send-email-jolsa@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2014-12-11 11:24:14 +01:00
..
acpi ACPI, irq, x86: Return IRQ instead of GSI in mp_register_gsi() 2014-10-29 08:52:30 +01:00
apic Linux 3.18-rc1 2014-10-24 13:26:37 -07:00
cpu perf/x86/intel/uncore: Make sure only uncore events are collected 2014-12-11 11:24:14 +01:00
kprobes kprobes/x86: Free 'optinsn' cache when range check fails 2014-08-27 20:24:32 +02:00
.gitignore
alternative.c
amd_gart_64.c
amd_nb.c
apb_timer.c x86, intel-mid: Create IRQs for APB timers and RTC timers 2014-10-29 08:52:23 +01:00
aperture_64.c
apm_32.c x86: Remove unused variable "polling" 2014-07-16 12:58:47 +02:00
asm-offsets_32.c
asm-offsets_64.c
asm-offsets.c
audit_64.c
bootflag.c
check.c
cpuid.c
crash_dump_32.c
crash_dump_64.c
crash.c kexec: check if crashk_res_low exists when exclude it from crash mem ranges 2014-10-14 02:18:21 +02:00
devicetree.c x86, irq, devicetree: Release IOAPIC pin when PCI device is disabled 2014-06-21 23:05:44 +02:00
doublefault.c
dumpstack_32.c
dumpstack_64.c x86_64, traps: Stop using IST for #SS 2014-11-23 13:56:19 -08:00
dumpstack.c
e820.c x86/mm, hibernate: Do not assume the first e820 area to be RAM 2014-09-16 09:54:31 +02:00
early_printk.c
early-quirks.c
entry_32.S i386/audit: stop scribbling on the stack frame 2014-10-24 13:27:56 -07:00
entry_64.S x86_64, traps: Rework bad_iret 2014-11-23 13:56:19 -08:00
espfix_64.c x86/espfix/xen: Fix allocation of pages for paravirt page tables 2014-07-14 13:47:32 -07:00
ftrace.c ftrace/x86: Add call to ftrace_graph_is_dead() in function graph code 2014-07-17 09:45:08 -04:00
head32.c
head64.c
head_32.S
head_64.S
head.c
hpet.c
hw_breakpoint.c x86: Replace __get_cpu_var uses 2014-08-26 13:45:49 -04:00
i386_ksyms_32.c
i387.c
i8237.c
i8253.c
i8259.c x86/irq: Fix XT-PIC-XT-PIC in /proc/interrupts 2014-10-28 12:01:08 +01:00
io_delay.c
ioport.c
iosf_mbi.c x86/platform/intel/iosf: Add debugfs config option for IOSF 2014-09-19 13:08:43 +02:00
irq_32.c
irq_64.c x86: Replace __get_cpu_var uses 2014-08-26 13:45:49 -04:00
irq_work.c x86: Tell irq work about self IPI support 2014-09-13 18:38:29 +02:00
irq.c
irqinit.c x86/irq: Fix XT-PIC-XT-PIC in /proc/interrupts 2014-10-28 12:01:08 +01:00
jump_label.c
kdebugfs.c
kexec-bzimage64.c kexec-bzimage64: fix sparse warnings 2014-10-14 02:18:21 +02:00
kgdb.c
ksysfs.c
kvm.c Merge branch 'for-3.18-consistent-ops' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2014-10-15 07:48:18 +02:00
kvmclock.c
ldt.c
machine_kexec_32.c x86: Axe the lightly-used cpu_has_pae 2014-09-11 14:30:01 -07:00
machine_kexec_64.c kexec: create a new config option CONFIG_KEXEC_FILE for new syscall 2014-08-29 16:28:16 -07:00
Makefile x86: Speed up ___preempt_schedule*() by using THUNK helpers 2014-09-24 15:15:38 +02:00
mcount_64.S ftrace: x86: Remove check of obsolete variable function_trace_stop 2014-07-18 13:57:02 -04:00
mmconf-fam10h_64.c
module.c
mpparse.c x86, apic: Remove mps_oem_check callback 2014-07-31 08:05:42 -07:00
msr.c
nmi_selftest.c
nmi.c
paravirt_patch_32.c
paravirt_patch_64.c x86_64/entry/xen: Do not invoke espfix64 on Xen 2014-07-28 15:25:40 -07:00
paravirt-spinlocks.c
paravirt.c
pci-calgary_64.c
pci-dma.c
pci-iommu_table.c
pci-nommu.c
pci-swiotlb.c
pcspeaker.c
perf_regs.c
pmc_atom.c x86/platform/pmc_atom: Fix warning when CONFIG_DEBUG_FS=n 2014-09-19 13:02:21 +02:00
probe_roms.c
process_32.c x86: copy_thread: Don't nullify ->ptrace_bps twice 2014-09-02 14:51:17 -07:00
process_64.c x86: copy_thread: Don't nullify ->ptrace_bps twice 2014-09-02 14:51:17 -07:00
process.c x86, fpu: Shift "fpu_counter = 0" from copy_thread() to arch_dup_task_struct() 2014-09-02 14:51:16 -07:00
ptrace.c x86, syscall: Fix _TIF_NOHZ handling in syscall_trace_enter_phase1 2014-11-20 23:01:53 +01:00
pvclock.c
quirks.c x86: HPET force enable for e6xx based systems 2014-09-15 17:53:35 -07:00
reboot_fixups_32.c
reboot.c x86/reboot: Add EFI reboot quirk for ACPI Hardware Reduced flag 2014-07-18 21:23:52 +01:00
relocate_kernel_32.S
relocate_kernel_64.S
resource.c x86: don't exclude low BIOS area when allocating address space for non-PCI cards 2014-07-16 12:29:36 -06:00
rtc.c
setup_percpu.c
setup.c x86, cma: Reserve DMA contiguous area after initmem_init() 2014-10-28 07:36:50 +01:00
signal.c x86, fpu: shift drop_init_fpu() from save_xstate_sig() to handle_signal() 2014-09-02 14:51:14 -07:00
smp.c
smpboot.c x86/core, x86/xen/smp: Use 'die_complete' completion when taking CPU down 2014-11-10 11:16:40 +01:00
stacktrace.c
step.c
sys_x86_64.c
syscall_32.c
syscall_64.c
sysfb_efi.c
sysfb_simplefb.c
sysfb.c
tboot.c
tce_64.c
test_nx.c
test_rodata.c
time.c x86: Fix non-PC platform kernel crash on boot due to NULL dereference 2014-08-25 22:36:57 +02:00
tls.c
tls.h
topology.c
trace_clock.c
tracepoint.c
traps.c x86/asm/traps: Disable tracing and kprobes in fixup_bad_iret and sync_regs 2014-11-25 07:26:55 +01:00
tsc_msr.c
tsc_sync.c
tsc.c x86, apic: Handle a bad TSC more gracefully 2014-10-22 21:31:46 +02:00
uprobes.c
verify_cpu.S
vm86_32.c
vmlinux.lds.S
vsmp_64.c x86/apic/vsmp: Make is_vsmp_box() static 2014-08-01 15:09:45 -07:00
vsyscall_64.c seccomp,x86,arm,mips,s390: Remove nr parameter from secure_computing 2014-09-03 14:58:17 -07:00
vsyscall_emu_64.S
vsyscall_gtod.c timekeeping: Create struct tk_read_base and use it in struct timekeeper 2014-07-23 15:01:53 -07:00
vsyscall_trace.h
x86_init.c
x8664_ksyms_64.c
xsave.c x86, fpu: __restore_xstate_sig()->math_state_restore() needs preempt_disable() 2014-09-02 14:51:15 -07:00