Messages in this thread | | | Date | Wed, 7 Oct 2009 14:08:27 +1100 | From | Paul Mackerras <> | Subject | Re: [PATCH 1/2] tracing: Check total refcount before releasing bufs in profile_enable failure |
| |
Frederic Weisbecker writes:
> When we call the profile_enable() callback of an event, we release the > shared perf event tracing buffers unconditionnaly in the failure path. > This is wrong because there may be other users of these. Then check the > total refcount before doing this.
[snip]
> - kfree(trace_profile_buf_nmi); > fail_buf_nmi: > - kfree(trace_profile_buf); > + if (!total_profile_count) {
A small problem here: total_profile_count will be 1, not 0, in the case where we need to free...
> + kfree(trace_profile_buf_nmi); > + kfree(trace_profile_buf); > + trace_profile_buf_nmi = NULL; > + trace_profile_buf = NULL; > + } > fail_buf: > - total_profile_count--;
since we don't decrement total_profile_count until here.
Paul.
| |