]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
dtrace: ensure speculation buffer cleaning does not race with buffer freeing
authorKris Van Hees <kris.van.hees@oracle.com>
Thu, 17 Oct 2013 09:44:20 +0000 (05:44 -0400)
committerKris Van Hees <kris.van.hees@oracle.com>
Thu, 17 Oct 2013 09:44:20 +0000 (05:44 -0400)
Orabug: 17553446

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
dtrace/dtrace_state.c

index 404c05bfd2887212c1e57f62a220a41f4504ef54..6861223512a9ac757d3ea5ac4727119558433448 100644 (file)
@@ -291,7 +291,8 @@ void dtrace_vstate_fini(dtrace_vstate_t *vstate)
 
 static void dtrace_state_clean(dtrace_state_t *state)
 {
-       if (state->dts_activity == DTRACE_ACTIVITY_INACTIVE)
+       if (state->dts_activity != DTRACE_ACTIVITY_ACTIVE &&
+           state->dts_activity != DTRACE_ACTIVITY_DRAINING)
                return;
 
        dtrace_dynvar_clean(&state->dts_vstate.dtvs_dynvars);