Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2993654AbdDYVOH (ORCPT ); Tue, 25 Apr 2017 17:14:07 -0400 Received: from mail.kernel.org ([198.145.29.136]:40214 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1032025AbdDYVNz (ORCPT ); Tue, 25 Apr 2017 17:13:55 -0400 Date: Tue, 25 Apr 2017 17:13:50 -0400 From: Steven Rostedt To: "Paul E. McKenney" Cc: linux-kernel@vger.kernel.org, mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org, dhowells@redhat.com, edumazet@google.com, fweisbec@gmail.com, oleg@redhat.com, bobby.prani@gmail.com Subject: Re: [PATCH v3 tip/core/rcu 05/40] rcu: Semicolon inside RCU_TRACE() for rcu.h Message-ID: <20170425171350.7d7bf17c@gandalf.local.home> In-Reply-To: <1492621117-13939-5-git-send-email-paulmck@linux.vnet.ibm.com> References: <20170419165805.GB10874@linux.vnet.ibm.com> <1492621117-13939-5-git-send-email-paulmck@linux.vnet.ibm.com> X-Mailer: Claws Mail 3.14.0 (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1484 Lines: 40 On Wed, 19 Apr 2017 09:58:02 -0700 "Paul E. McKenney" wrote: > The current use of "RCU_TRACE(statement);" can cause odd bugs, especially > where "statement" is a local-variable declaration, as it can leave a > misplaced ";" in the source code. This commit therefore converts these > to "RCU_TRACE(statement;)", which avoids the misplaced ";". > > Reported-by: Josh Triplett > Signed-off-by: Paul E. McKenney > --- > kernel/rcu/rcu.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h > index 0d6ff3e471be..8700a81daf56 100644 > --- a/kernel/rcu/rcu.h > +++ b/kernel/rcu/rcu.h > @@ -109,12 +109,12 @@ static inline bool __rcu_reclaim(const char *rn, struct rcu_head *head) > > rcu_lock_acquire(&rcu_callback_map); > if (__is_kfree_rcu_offset(offset)) { > - RCU_TRACE(trace_rcu_invoke_kfree_callback(rn, head, offset)); > + RCU_TRACE(trace_rcu_invoke_kfree_callback(rn, head, offset);) I have to ask. Why is this a RCU_TRACE() anyway? tracepoints use jump labels, and this is basically a nop here when tracing is off. -- Steve > kfree((void *)head - offset); > rcu_lock_release(&rcu_callback_map); > return true; > } else { > - RCU_TRACE(trace_rcu_invoke_callback(rn, head)); > + RCU_TRACE(trace_rcu_invoke_callback(rn, head);) > head->func(head); > rcu_lock_release(&rcu_callback_map); > return false;