lkml.org 
[lkml]   [2011]   [Mar]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2 2.6.38-rc8-tip 7/20] 7: uprobes: store/restore original instruction.
    * Thomas Gleixner <tglx@linutronix.de> [2011-03-15 15:41:20]:

    > On Mon, 14 Mar 2011, Srikar Dronamraju wrote:
    > > static int install_uprobe(struct mm_struct *mm, struct uprobe *uprobe)
    > > {
    > > - int ret = 0;
    > > + struct task_struct *tsk;
    > > + int ret = -EINVAL;
    > >
    > > - /*TODO: install breakpoint */
    > > - if (!ret)
    > > + get_task_struct(mm->owner);
    >
    > Increment task ref before checking for NULL ?

    In response to earlier comments/suggestions from Stephen Wilson, we
    resolved to handle it this way


    static uprobes_get_mm_owner() {
    struct task_struct *tsk;

    rcu_read_lock()
    tsk = rcu_dereference(mm->owner);
    if (tsk)
    get_task_struct(tsk);
    rcu_read_unlock();
    return tsk;
    }

    Both install_uprobe and remove_uprobe will end up calling uprobes_get_mm_owner().


    --
    Thanks and Regards
    Srikar


    \
     
     \ /
      Last update: 2011-03-15 17:33    [W:4.195 / U:0.132 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site