|
@@ -3710,7 +3710,11 @@ static int __perf_event_overflow(struct perf_event *event, int nmi,
|
|
|
perf_event_disable(event);
|
|
|
}
|
|
|
|
|
|
- perf_event_output(event, nmi, data, regs);
|
|
|
+ if (event->overflow_handler)
|
|
|
+ event->overflow_handler(event, nmi, data, regs);
|
|
|
+ else
|
|
|
+ perf_event_output(event, nmi, data, regs);
|
|
|
+
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -4836,6 +4840,8 @@ inherit_event(struct perf_event *parent_event,
|
|
|
if (parent_event->attr.freq)
|
|
|
child_event->hw.sample_period = parent_event->hw.sample_period;
|
|
|
|
|
|
+ child_event->overflow_handler = parent_event->overflow_handler;
|
|
|
+
|
|
|
/*
|
|
|
* Link it up in the child's context:
|
|
|
*/
|