lkml.org 
[lkml]   [2013]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH -tip v5 13/18] notifier: Use NOKPROBE_SYMBOL macro in notifier
    (2013/12/09 19:47), Masami Hiramatsu wrote:
    > Use NOKPROBE_SYMBOL macro to protect functions from
    > kprobes instead of __kprobes annotation in notifier.

    Ah, this must just removes __kprobes since we don't use notify_die
    for kprobes anymore...


    >
    > Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    > ---
    > kernel/notifier.c | 22 +++++++++++++---------
    > 1 file changed, 13 insertions(+), 9 deletions(-)
    >
    > diff --git a/kernel/notifier.c b/kernel/notifier.c
    > index 2d5cc4c..61fc78a 100644
    > --- a/kernel/notifier.c
    > +++ b/kernel/notifier.c
    > @@ -71,9 +71,9 @@ static int notifier_chain_unregister(struct notifier_block **nl,
    > * @returns: notifier_call_chain returns the value returned by the
    > * last notifier function called.
    > */
    > -static int __kprobes notifier_call_chain(struct notifier_block **nl,
    > - unsigned long val, void *v,
    > - int nr_to_call, int *nr_calls)
    > +static int notifier_call_chain(struct notifier_block **nl,
    > + unsigned long val, void *v,
    > + int nr_to_call, int *nr_calls)
    > {
    > int ret = NOTIFY_DONE;
    > struct notifier_block *nb, *next_nb;
    > @@ -102,6 +102,7 @@ static int __kprobes notifier_call_chain(struct notifier_block **nl,
    > }
    > return ret;
    > }
    > +NOKPROBE_SYMBOL(notifier_call_chain);
    >
    > /*
    > * Atomic notifier chain routines. Registration and unregistration
    > @@ -172,9 +173,9 @@ EXPORT_SYMBOL_GPL(atomic_notifier_chain_unregister);
    > * Otherwise the return value is the return value
    > * of the last notifier function called.
    > */
    > -int __kprobes __atomic_notifier_call_chain(struct atomic_notifier_head *nh,
    > - unsigned long val, void *v,
    > - int nr_to_call, int *nr_calls)
    > +int __atomic_notifier_call_chain(struct atomic_notifier_head *nh,
    > + unsigned long val, void *v,
    > + int nr_to_call, int *nr_calls)
    > {
    > int ret;
    >
    > @@ -184,13 +185,15 @@ int __kprobes __atomic_notifier_call_chain(struct atomic_notifier_head *nh,
    > return ret;
    > }
    > EXPORT_SYMBOL_GPL(__atomic_notifier_call_chain);
    > +NOKPROBE_SYMBOL(__atomic_notifier_call_chain);
    >
    > -int __kprobes atomic_notifier_call_chain(struct atomic_notifier_head *nh,
    > - unsigned long val, void *v)
    > +int atomic_notifier_call_chain(struct atomic_notifier_head *nh,
    > + unsigned long val, void *v)
    > {
    > return __atomic_notifier_call_chain(nh, val, v, -1, NULL);
    > }
    > EXPORT_SYMBOL_GPL(atomic_notifier_call_chain);
    > +NOKPROBE_SYMBOL(atomic_notifier_call_chain);
    >
    > /*
    > * Blocking notifier chain routines. All access to the chain is
    > @@ -527,7 +530,7 @@ EXPORT_SYMBOL_GPL(srcu_init_notifier_head);
    >
    > static ATOMIC_NOTIFIER_HEAD(die_chain);
    >
    > -int notrace __kprobes notify_die(enum die_val val, const char *str,
    > +int notrace notify_die(enum die_val val, const char *str,
    > struct pt_regs *regs, long err, int trap, int sig)
    > {
    > struct die_args args = {
    > @@ -540,6 +543,7 @@ int notrace __kprobes notify_die(enum die_val val, const char *str,
    > };
    > return atomic_notifier_call_chain(&die_chain, val, &args);
    > }
    > +NOKPROBE_SYMBOL(notify_die);
    >
    > int register_die_notifier(struct notifier_block *nb)
    > {
    >
    >
    >


    --
    Masami HIRAMATSU
    IT Management Research Dept. Linux Technology Center
    Hitachi, Ltd., Yokohama Research Laboratory
    E-mail: masami.hiramatsu.pt@hitachi.com




    \
     
     \ /
      Last update: 2013-12-11 04:21    [W:2.191 / U:0.488 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site