From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Vince Weaver <vincent.weaver@maine.edu>,
Mark Rutland <mark.rutland@arm.com>,
Will Deacon <will.deacon@arm.com>,
Russell King <rmk+kernel@arm.linux.org.uk>
Subject: [ 31/34] ARM: 7809/1: perf: fix event validation for software group leaders
Date: Sun, 18 Aug 2013 13:34:44 -0700 [thread overview]
Message-ID: <20130818203301.809454963@linuxfoundation.org> (raw)
In-Reply-To: <20130818203259.653403173@linuxfoundation.org>
3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Will Deacon <will.deacon@arm.com>
commit c95eb3184ea1a3a2551df57190c81da695e2144b upstream.
It is possible to construct an event group with a software event as a
group leader and then subsequently add a hardware event to the group.
This results in the event group being validated by adding all members
of the group to a fake PMU and attempting to allocate each event on
their respective PMU.
Unfortunately, for software events wthout a corresponding arm_pmu, this
results in a kernel crash attempting to dereference the ->get_event_idx
function pointer.
This patch fixes the problem by checking explicitly for software events
and ignoring those in event validation (since they can always be
scheduled). We will probably want to revisit this for 3.12, since the
validation checks don't appear to work correctly when dealing with
multiple hardware PMUs anyway.
Reported-by: Vince Weaver <vincent.weaver@maine.edu>
Tested-by: Vince Weaver <vincent.weaver@maine.edu>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/kernel/perf_event.c | 3 +++
1 file changed, 3 insertions(+)
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -324,6 +324,9 @@ validate_event(struct pmu_hw_events *hw_
struct hw_perf_event fake_event = event->hw;
struct pmu *leader_pmu = event->group_leader->pmu;
+ if (is_software_event(event))
+ return 1;
+
if (event->pmu != leader_pmu || event->state < PERF_EVENT_STATE_OFF)
return 1;
next prev parent reply other threads:[~2013-08-18 20:49 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-18 20:34 [ 00/34] 3.4.59-stable review Greg Kroah-Hartman
2013-08-18 20:34 ` [ 01/34] perf/arm: Fix armpmu_map_hw_event() Greg Kroah-Hartman
2013-08-18 20:34 ` [ 02/34] fs/proc/task_mmu.c: fix buffer overflow in add_page_map() Greg Kroah-Hartman
2013-08-18 20:34 ` [ 03/34] drm/i915/lvds: ditch ->prepare special case Greg Kroah-Hartman
2013-08-18 20:34 ` [ 04/34] MIPS: Expose missing pci_io{map,unmap} declarations Greg Kroah-Hartman
2013-08-18 20:34 ` [ 05/34] microblaze: Update microblaze defconfigs Greg Kroah-Hartman
2013-08-18 20:34 ` [ 06/34] sound: Fix make allmodconfig on MIPS Greg Kroah-Hartman
2013-08-18 20:34 ` [ 07/34] sound: Fix make allmodconfig on MIPS correctly Greg Kroah-Hartman
2013-08-18 20:34 ` [ 08/34] HID: microsoft: do not use compound literal - fix build Greg Kroah-Hartman
2013-08-18 20:34 ` [ 09/34] vm: add no-mmu vm_iomap_memory() stub Greg Kroah-Hartman
2013-08-18 20:34 ` [ 10/34] cris: posix_types.h, include asm-generic/posix_types.h Greg Kroah-Hartman
2013-08-18 20:34 ` [ 11/34] cris: Remove old legacy "-traditional" flag from arch-v10/lib/Makefile Greg Kroah-Hartman
2013-08-18 20:34 ` [ 12/34] CRIS: Add _sdata to vmlinux.lds.S Greg Kroah-Hartman
2013-08-18 20:34 ` [ 13/34] futex: Take hugepages into account when generating futex_key Greg Kroah-Hartman
2013-08-18 20:34 ` [ 14/34] frv: Use correct size for task_struct allocation Greg Kroah-Hartman
2013-08-18 20:34 ` [ 15/34] frv: Use core allocator for task_struct Greg Kroah-Hartman
2013-08-18 20:34 ` [ 16/34] powerpc/numa: Avoid stupid uninitialized warning from gcc Greg Kroah-Hartman
2013-08-18 20:34 ` [ 17/34] alpha: makefile: dont enforce small data model for kernel builds Greg Kroah-Hartman
2013-08-18 20:34 ` [ 18/34] md/raid1,raid10: use freeze_array in place of raise_barrier in various places Greg Kroah-Hartman
2013-08-18 20:34 ` [ 19/34] sparc32: add ucmpdi2 Greg Kroah-Hartman
2013-08-18 20:34 ` [ 20/34] sparc32: Add ucmpdi2.o to obj-y instead of lib-y Greg Kroah-Hartman
2013-08-18 20:34 ` [ 21/34] MIPS: Rewrite pfn_valid to work in modules, too Greg Kroah-Hartman
2013-08-18 20:34 ` [ 22/34] af_key: initialize satype in key_notify_policy_flush() Greg Kroah-Hartman
2013-08-18 20:34 ` [ 23/34] iwl4965: set power mode early Greg Kroah-Hartman
2013-08-18 20:34 ` [ 24/34] iwl4965: reset firmware after rfkill off Greg Kroah-Hartman
2013-08-18 20:34 ` [ 25/34] can: pcan_usb: fix wrong memcpy() bytes length Greg Kroah-Hartman
2013-08-18 20:34 ` [ 26/34] genetlink: fix family dump race Greg Kroah-Hartman
2013-08-18 20:34 ` [ 27/34] usb: add two quirky touchscreen Greg Kroah-Hartman
2013-08-18 20:34 ` [ 28/34] USB: mos7720: fix broken control requests Greg Kroah-Hartman
2013-08-18 20:34 ` [ 29/34] xtensa: fix linker script transformation for .text.unlikely Greg Kroah-Hartman
2013-08-18 20:34 ` [ 30/34] xtensa: replace xtensa-specific _f{data,text} by _s{data,text} Greg Kroah-Hartman
2013-08-18 20:34 ` Greg Kroah-Hartman [this message]
2013-08-18 20:34 ` [ 32/34] m68k: Truncate base in do_div() Greg Kroah-Hartman
2013-08-18 20:34 ` [ 33/34] m68k/atari: ARAnyM - Fix NatFeat module support Greg Kroah-Hartman
2013-08-18 20:34 ` [ 34/34] jbd2: Fix use after free after error in jbd2_journal_dirty_metadata() Greg Kroah-Hartman
2013-08-19 1:49 ` [ 00/34] 3.4.59-stable review Guenter Roeck
2013-08-19 18:02 ` Shuah Khan
2013-08-19 19:35 ` Greg Kroah-Hartman
2013-08-19 20:14 ` Stefan Lippers-Hollmann
2013-08-19 22:22 ` Shuah Khan
2013-08-19 22:30 ` Greg Kroah-Hartman
2013-08-20 7:36 ` Berg, Johannes
2013-08-20 7:36 ` Berg, Johannes
2013-08-20 15:24 ` Greg Kroah-Hartman
2013-08-20 15:32 ` Berg, Johannes
2013-08-20 15:53 ` Hugh Dickins
2013-08-20 16:03 ` Greg Kroah-Hartman
2013-08-20 16:25 ` Hugh Dickins
2013-08-20 16:43 ` Steven Rostedt
2013-08-20 16:43 ` Shuah Khan
2013-08-19 22:31 ` Shuah Khan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130818203301.809454963@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=rmk+kernel@arm.linux.org.uk \
--cc=stable@vger.kernel.org \
--cc=vincent.weaver@maine.edu \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.