• Stephane Eranian's avatar
    perf/x86: Fix active_entry initialization · f3ae75de
    Stephane Eranian authored
    This patch fixes a problem with the initialization of the
    struct perf_event active_entry field. It is defined inside
    an anonymous union and was initialized in perf_event_alloc()
    using INIT_LIST_HEAD(). However at that time, we do not know
    whether the event is going to use active_entry or hlist_entry (SW).
    Or at last, we don't want to make that determination there.
    The problem is that hlist and list_head are not initialized
    the same way. One is okay with NULL (from kzmalloc), the other
    needs to pointers to point to self.
    
    This patch resolves this problem by dropping the union.
    This will avoid problems later on, if someone starts using
    active_entry or hlist_entry without verifying that they
    actually overlap. This also solves the initialization
    problem.
    Signed-off-by: default avatarStephane Eranian <eranian@google.com>
    Cc: ak@linux.intel.com
    Cc: acme@redhat.com
    Cc: jolsa@redhat.com
    Cc: zheng.z.yan@intel.com
    Cc: bp@alien8.de
    Cc: vincent.weaver@maine.edu
    Cc: maria.n.dimakopoulou@gmail.com
    Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1389176153-3128-2-git-send-email-eranian@google.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    f3ae75de
core.c 186 KB