lkml.org 
[lkml]   [2009]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] ksym_tracer: Fix breakpoint removal after modification
    Commit-ID:  d99be40aff88722ab03ee295e4f6c13a4cca9a3d
    Gitweb: http://git.kernel.org/tip/d99be40aff88722ab03ee295e4f6c13a4cca9a3d
    Author: Frederic Weisbecker <fweisbec@gmail.com>
    AuthorDate: Thu, 26 Nov 2009 05:35:40 +0100
    Committer: Ingo Molnar <mingo@elte.hu>
    CommitDate: Thu, 26 Nov 2009 09:29:20 +0100

    ksym_tracer: Fix breakpoint removal after modification

    The error path of a breakpoint modification is broken in
    the ksym tracer. A modified breakpoint hlist node is immediately
    released after its removal. Also we leak a breakpoint in this
    case.

    Fix the path.

    Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Prasad <prasad@linux.vnet.ibm.com>
    LKML-Reference: <1259210142-5714-1-git-send-regression-fweisbec@gmail.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    ---
    kernel/trace/trace_ksym.c | 10 ++++++++--
    1 files changed, 8 insertions(+), 2 deletions(-)

    diff --git a/kernel/trace/trace_ksym.c b/kernel/trace/trace_ksym.c
    index 11935b5..9f040e4 100644
    --- a/kernel/trace/trace_ksym.c
    +++ b/kernel/trace/trace_ksym.c
    @@ -339,14 +339,20 @@ static ssize_t ksym_trace_filter_write(struct file *file,
    ksym_hbp_handler, true);
    if (IS_ERR(entry->ksym_hbp))
    entry->ksym_hbp = NULL;
    - if (!entry->ksym_hbp)
    +
    + /* modified without problem */
    + if (entry->ksym_hbp) {
    + ret = 0;
    goto out;
    + }
    + } else {
    + ret = 0;
    }
    + /* Error or "symbol:---" case: drop it */
    ksym_filter_entry_count--;
    hlist_del_rcu(&(entry->ksym_hlist));
    synchronize_rcu();
    kfree(entry);
    - ret = 0;
    goto out;
    } else {
    /* Check for malformed request: (4) */

    \
     
     \ /
      Last update: 2009-11-26 09:49    [W:2.737 / U:1.320 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site