Messages in this thread | | | Date | Thu, 13 Nov 2014 21:07:44 -0500 | From | Steven Rostedt <> | Subject | Re: [PATCH RFC v2] trace, blktrace: don't let the sysfs interface remove trace from running list |
| |
Jens (Cc'd) maintains the blktrace. He can take this if he wants.
-- Steve
On Mon, 10 Nov 2014 11:40:49 +0100 Arianna Avanzini <avanzini.arianna@gmail.com> wrote:
> Currently, blktrace can be started/stopped via its ioctl-based interface > (used by the userspace blktrace tool) or via its ftrace interface. The > function blk_trace_remove_queue(), called each time an "enable" tunable > of the ftrace interface transitions to zero, removes the trace from the > running list, even if no function from the sysfs interface adds it to > such a list. This leads to a null pointer dereference. > This commit changes the blk_trace_remove_queue() function so that it > does not remove the blk_trace from the running list. > > v2: > - Now the patch removes the invocation of list_del() instead of > adding an useless if branch, as suggested by Namhyung Kim. > > Signed-off-by: Arianna Avanzini <avanzini.arianna@gmail.com> > --- > kernel/trace/blktrace.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c > index c1bd4ad..bd05fd2 100644 > --- a/kernel/trace/blktrace.c > +++ b/kernel/trace/blktrace.c > @@ -1493,9 +1493,6 @@ static int blk_trace_remove_queue(struct request_queue *q) > if (atomic_dec_and_test(&blk_probes_ref)) > blk_unregister_tracepoints(); > > - spin_lock_irq(&running_trace_lock); > - list_del(&bt->running_list); > - spin_unlock_irq(&running_trace_lock); > blk_trace_free(bt); > return 0; > }
| |