From cdd4b70bd9471cca8c73e2214587e836dc0df1c4 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Thu, 26 May 2011 17:02:53 +0200 Subject: [PATCH] --- yaml --- r: 252667 b: refs/heads/master c: f506b3dc0ec454a16d40cab9ee5d75435b39dc50 h: refs/heads/master i: 252665: e8b942a9002cb7bcba52401faec0c05f68af2e74 252663: 02226666a5e28e359e5ca66228e9a6454dcebe3e v: v3 --- [refs] | 2 +- trunk/kernel/events/core.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 845183100bc6..106d87fc8d54 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e4a338d05df93ab1ebf291aca1e753064319d301 +refs/heads/master: f506b3dc0ec454a16d40cab9ee5d75435b39dc50 diff --git a/trunk/kernel/events/core.c b/trunk/kernel/events/core.c index c09767f7db3e..d863b3c057bb 100644 --- a/trunk/kernel/events/core.c +++ b/trunk/kernel/events/core.c @@ -5028,6 +5028,14 @@ static int __perf_event_overflow(struct perf_event *event, int nmi, else perf_event_output(event, nmi, data, regs); + if (event->fasync && event->pending_kill) { + if (nmi) { + event->pending_wakeup = 1; + irq_work_queue(&event->pending); + } else + perf_event_wakeup(event); + } + return ret; }