• Oleg Nesterov's avatar
    perf: Fix perf_event_init_task()/perf_event_free_task() interaction · 8550d7cb
    Oleg Nesterov authored
    perf_event_init_task() should clear child->perf_event_ctxp[]
    before anything else. Otherwise, if
    perf_event_init_context(perf_hw_context) fails,
    perf_event_free_task() can free perf_event_ctxp[perf_sw_context]
    copied from parent->perf_event_ctxp[] by dup_task_struct().
    
    Also move the initialization of perf_event_mutex and
    perf_event_list from perf_event_init_context() to
    perf_event_init_context().
    Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
    Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Alan Stern <stern@rowland.harvard.edu>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Prasad <prasad@linux.vnet.ibm.com>
    Cc: Roland McGrath <roland@redhat.com>
    LKML-Reference: <20110119182228.GC12183@redhat.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    8550d7cb
perf_event.c 152 KB