lkml.org 
[lkml]   [2017]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH -tip 2/5] kprobes: Abolish jprobe APIs
    Date
    Abolish jprobe APIs and comment out the jprobe API function
    code. This is a preparation of removing all jprobe related
    code (including kprobe's break_handler)

    Nowadays ftrace and other tracing features are enough matured
    to replace jprobe use-cases. Users can safely use ftrace and
    perf probe etc. for their use cases.

    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    ---
    include/linux/kprobes.h | 40 ++++++++++++++++++----------------------
    kernel/kprobes.c | 2 ++
    2 files changed, 20 insertions(+), 22 deletions(-)

    diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h
    index 39d558ec71c6..47aaecd0f702 100644
    --- a/include/linux/kprobes.h
    +++ b/include/linux/kprobes.h
    @@ -391,10 +391,6 @@ int register_kprobes(struct kprobe **kps, int num);
    void unregister_kprobes(struct kprobe **kps, int num);
    int setjmp_pre_handler(struct kprobe *, struct pt_regs *);
    int longjmp_break_handler(struct kprobe *, struct pt_regs *);
    -int register_jprobe(struct jprobe *p);
    -void unregister_jprobe(struct jprobe *p);
    -int register_jprobes(struct jprobe **jps, int num);
    -void unregister_jprobes(struct jprobe **jps, int num);
    void jprobe_return(void);
    unsigned long arch_deref_entry_point(void *);

    @@ -443,20 +439,6 @@ static inline void unregister_kprobe(struct kprobe *p)
    static inline void unregister_kprobes(struct kprobe **kps, int num)
    {
    }
    -static inline int register_jprobe(struct jprobe *p)
    -{
    - return -ENOTSUPP;
    -}
    -static inline int register_jprobes(struct jprobe **jps, int num)
    -{
    - return -ENOTSUPP;
    -}
    -static inline void unregister_jprobe(struct jprobe *p)
    -{
    -}
    -static inline void unregister_jprobes(struct jprobe **jps, int num)
    -{
    -}
    static inline void jprobe_return(void)
    {
    }
    @@ -486,6 +468,20 @@ static inline int enable_kprobe(struct kprobe *kp)
    return -ENOTSUPP;
    }
    #endif /* CONFIG_KPROBES */
    +static inline int __deprecated register_jprobe(struct jprobe *p)
    +{
    + return -ENOTSUPP;
    +}
    +static inline int __deprecated register_jprobes(struct jprobe **jps, int num)
    +{
    + return -ENOTSUPP;
    +}
    +static inline void __deprecated unregister_jprobe(struct jprobe *p)
    +{
    +}
    +static inline void __deprecated unregister_jprobes(struct jprobe **jps, int num)
    +{
    +}
    static inline int disable_kretprobe(struct kretprobe *rp)
    {
    return disable_kprobe(&rp->kp);
    @@ -494,13 +490,13 @@ static inline int enable_kretprobe(struct kretprobe *rp)
    {
    return enable_kprobe(&rp->kp);
    }
    -static inline int disable_jprobe(struct jprobe *jp)
    +static inline int __deprecated disable_jprobe(struct jprobe *jp)
    {
    - return disable_kprobe(&jp->kp);
    + return -ENOTSUPP;
    }
    -static inline int enable_jprobe(struct jprobe *jp)
    +static inline int __deprecated enable_jprobe(struct jprobe *jp)
    {
    - return enable_kprobe(&jp->kp);
    + return -ENOTSUPP;
    }

    #ifndef CONFIG_KPROBES
    diff --git a/kernel/kprobes.c b/kernel/kprobes.c
    index 5e977d3b712a..4ab1fb52194f 100644
    --- a/kernel/kprobes.c
    +++ b/kernel/kprobes.c
    @@ -1772,6 +1772,7 @@ unsigned long __weak arch_deref_entry_point(void *entry)
    return (unsigned long)entry;
    }

    +#if 0
    int register_jprobes(struct jprobe **jps, int num)
    {
    int ret = 0, i;
    @@ -1840,6 +1841,7 @@ void unregister_jprobes(struct jprobe **jps, int num)
    }
    }
    EXPORT_SYMBOL_GPL(unregister_jprobes);
    +#endif

    #ifdef CONFIG_KRETPROBES
    /*
    \
     
     \ /
      Last update: 2017-10-06 01:16    [W:7.024 / U:0.724 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site