OSDN Git Service

perf/callchain: Replace rcu_assign_pointer() with RCU_INIT_POINTER()
authorAndreea-Cristina Bernat <bernat.ada@gmail.com>
Fri, 22 Aug 2014 14:15:36 +0000 (17:15 +0300)
committerIngo Molnar <mingo@kernel.org>
Tue, 9 Sep 2014 04:53:04 +0000 (06:53 +0200)
The use of "rcu_assign_pointer()" is NULLing out the pointer.
According to RCU_INIT_POINTER()'s block comment:

 "1.   This use of RCU_INIT_POINTER() is NULLing out the pointer"

it is better to use it instead of rcu_assign_pointer() because it has a
smaller overhead.

 The following Coccinelle semantic patch was used:
 @@
 @@

 - rcu_assign_pointer
 + RCU_INIT_POINTER
   (..., NULL)

Signed-off-by: Andreea-Cristina Bernat <bernat.ada@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: paulmck@linux.vnet.ibm.com
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Link: http://lkml.kernel.org/r/20140822141536.GA32051@ada
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/events/callchain.c

index 97b67df..f2a88de 100644 (file)
@@ -52,7 +52,7 @@ static void release_callchain_buffers(void)
        struct callchain_cpus_entries *entries;
 
        entries = callchain_cpus_entries;
-       rcu_assign_pointer(callchain_cpus_entries, NULL);
+       RCU_INIT_POINTER(callchain_cpus_entries, NULL);
        call_rcu(&entries->rcu_head, release_callchain_buffers_rcu);
 }