tracepoint: Fix sparse warnings in tracepoint.c
[deliverable/linux.git] / kernel / tracepoint.c
index 162be198a247fc56edebdbc45df7b4350eddb644..ca2cfe21bb8e22ab02b3cb7a5c3536dcc8309a6f 100644 (file)
@@ -181,7 +181,8 @@ static int tracepoint_add_func(struct tracepoint *tp,
        if (tp->regfunc && !static_key_enabled(&tp->key))
                tp->regfunc();
 
-       tp_funcs = tp->funcs;
+       tp_funcs = rcu_dereference_protected(tp->funcs,
+                       lockdep_is_held(&tracepoints_mutex));
        old = func_add(&tp_funcs, func);
        if (IS_ERR(old)) {
                WARN_ON_ONCE(1);
@@ -213,7 +214,8 @@ static int tracepoint_remove_func(struct tracepoint *tp,
 {
        struct tracepoint_func *old, *tp_funcs;
 
-       tp_funcs = tp->funcs;
+       tp_funcs = rcu_dereference_protected(tp->funcs,
+                       lockdep_is_held(&tracepoints_mutex));
        old = func_remove(&tp_funcs, func);
        if (IS_ERR(old)) {
                WARN_ON_ONCE(1);
This page took 0.046396 seconds and 5 git commands to generate.