On Wed, Sep 01, 2010 at 01:02:57PM +0200, Peter Zijlstra wrote: > On Wed, 2010-09-01 at 13:38 +0300, Avi Kivity wrote: > > On 09/01/2010 12:38 PM, Li Zefan wrote: > > > > > > Then try this: > > > > Tested-by: Avi Kivity <avi@xxxxxxxxxx> > > > > Thanks, queued as: > > --- > Subject: perf, trace: Fix module leak > From: Li Zefan <lizf@xxxxxxxxxxxxxx> > Date: Wed Sep 01 12:58:43 CEST 2010 > > Commit 1c024eca (perf, trace: Optimize tracepoints by using > per-tracepoint-per-cpu hlist to track events) caused a module refcount > leak. > > Tested-by: Avi Kivity <avi@xxxxxxxxxx> > Signed-off-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> > LKML-Reference: <4C7E1F12.8030304@xxxxxxxxxxxxxx> > --- > kernel/trace/trace_event_perf.c | 3 +++ > 1 file changed, 3 insertions(+) > > Index: linux-2.6/kernel/trace/trace_event_perf.c > =================================================================== > --- linux-2.6.orig/kernel/trace/trace_event_perf.c > +++ linux-2.6/kernel/trace/trace_event_perf.c > @@ -91,6 +91,8 @@ int perf_trace_init(struct perf_event *p > tp_event->class && tp_event->class->reg && > try_module_get(tp_event->mod)) { > ret = perf_trace_event_init(tp_event, p_event); > + if (ret) > + module_put(tp_event->mod); > break; > } > } > @@ -147,6 +149,7 @@ void perf_trace_destroy(struct perf_even > } > } > out: > + module_put(tp_event->mod); > mutex_unlock(&event_mutex); > } > > Thanks for fixing this. However, can we split this in two patches to ease the backport? The lack of a module_put() after perf_trace_init() failure is there for a while (the backport needs to start in 2.6.32). But the lack of a module_put in the destroy path needs a .35 backport only. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html