lkml.org 
[lkml]   [2010]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[RFC] [PATCH 2.6.37-rc5-tip 17/20] 17: uprobes: filter chain

    Loops through the filters callbacks of currently registered
    consumers to see if any consumer is interested in tracing this task.

    Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    ---
    kernel/uprobes.c | 18 ++++++++++++++++++
    1 files changed, 18 insertions(+), 0 deletions(-)

    diff --git a/kernel/uprobes.c b/kernel/uprobes.c
    index 93a3118..b0d323c 100644
    --- a/kernel/uprobes.c
    +++ b/kernel/uprobes.c
    @@ -429,6 +429,24 @@ static void handler_chain(struct uprobe *uprobe, struct pt_regs *regs)
    }

    /* Acquires uprobe->consumer_rwsem */
    +static bool filter_chain(struct uprobe *uprobe, struct task_struct *t)
    +{
    + struct uprobe_consumer *consumer;
    + bool ret = false;
    +
    + down_read(&uprobe->consumer_rwsem);
    + for (consumer = uprobe->consumers; consumer;
    + consumer = consumer->next) {
    + if (!consumer->filter || consumer->filter(consumer, t)) {
    + ret = true;
    + break;
    + }
    + }
    + up_read(&uprobe->consumer_rwsem);
    + return ret;
    +}
    +
    +/* Acquires uprobe->consumer_rwsem */
    static void add_consumer(struct uprobe *uprobe,
    struct uprobe_consumer *consumer)
    {

    \
     
     \ /
      Last update: 2010-12-16 11:05    [W:0.027 / U:60.512 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site