(2014/07/18 14:32), Namhyung Kim wrote:
> Hi Masami,
> 
> On Tue, 15 Jul 2014 06:00:35 +0000, Masami Hiramatsu wrote:
>> +static int __ftrace_add_filter_ip(struct ftrace_ops *ops, unsigned long ip,
>> +                              int *ref)
>> +{
>> +    int ret;
>> +
>> +    /* Try to set given ip to filter */
>> +    ret = ftrace_set_filter_ip(ops, ip, 0, 0);
>> +    if (ret < 0)
>> +            return ret;
>> +
>> +    (*ref)++;
>> +    if (*ref == 1) {
>> +            ret = register_ftrace_function(ops);
>> +            if (ret < 0) {
>> +                    /* Rollback refcounter and filter */
>> +                    (*ref)--;
>> +                    ftrace_set_filter_ip(ops, ip, 1, 0);
>> +            }
>> +    }
>> +
>> +    return ret;
>> +}
> 
> This function also can be changed in a similar way:
> 
>       if (*ref == 0) {
>               ret = register_ftrace_function(ops);
>               if (ret < 0) {
>                       /* Rollback filter if failed */
>                       ftrace_set_filter_ip(ops, ip, 1, 0);
>                       return ret;
>               }
>       }
> 
>       (*ref)++;
> 
>       return 0;

Indeed :)

Thanks!


-- 
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: [email protected]


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to