• David Rientjes's avatar
    oprofile: fix race condition in event_buffer free · 066b3aa8
    David Rientjes authored
    Looking at the 2.6.31-rc9 code, it appears there is a race condition
    in the event_buffer cleanup code path (shutdown). This could lead to
    kernel panic as some CPUs may be operating on the event buffer AFTER
    it has been freed. The attached patch solves the problem and makes
    sure CPUs check if the buffer is not NULL before they access it as
    some may have been spinning on the mutex while the buffer was being
    freed.
    
    The race may happen if the buffer is freed during pending reads. But
    it is not clear why there are races in add_event_entry() since all
    workqueues or handlers are canceled or flushed before the event buffer
    is freed.
    Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
    Signed-off-by: default avatarStephane Eranian <eranian@google.com>
    Signed-off-by: default avatarRobert Richter <robert.richter@amd.com>
    066b3aa8
event_buffer.c 4.19 KB