• Alexander Shishkin's avatar
    perf/aux: Fix AUX output stopping · 96202569
    Alexander Shishkin authored
    commit f3a519e4 upstream.
    
    Commit:
    
      8a58ddae ("perf/core: Fix exclusive events' grouping")
    
    allows CAP_EXCLUSIVE events to be grouped with other events. Since all
    of those also happen to be AUX events (which is not the case the other
    way around, because arch/s390), this changes the rules for stopping the
    output: the AUX event may not be on its PMU's context any more, if it's
    grouped with a HW event, in which case it will be on that HW event's
    context instead. If that's the case, munmap() of the AUX buffer can't
    find and stop the AUX event, potentially leaving the last reference with
    the atomic context, which will then end up freeing the AUX buffer. This
    will then trip warnings:
    
    Fix this by using the context's PMU context when looking for events
    to stop, instead of the event's PMU context.
    Signed-off-by: default avatarAlexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20191022073940.61814-1-alexander.shishkin@linux.intel.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    96202569
core.c 281 KB