From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joel Fernandes Subject: Re: [PATCH v3] kernel: audit.c: Add __rcu annotation to RCU pointer Date: Mon, 2 Dec 2019 16:19:15 -0500 Message-ID: <20191202211915.GF17234@google.com> References: <20191201183347.18122-1-frextrite@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20191201183347.18122-1-frextrite@gmail.com> Sender: linux-kernel-owner@vger.kernel.org To: Amol Grover Cc: Paul Moore , Eric Paris , linux-audit@redhat.com, linux-kernel@vger.kernel.org, linux-kernel-mentees@lists.linuxfoundation.org, Shuah Khan , paulmck@kernel.org, rcu@vger.kernel.org, rostedt@kernel.org List-Id: linux-audit@redhat.com Good idea to CC the following on RCU patches: Paul McKenney Steven Rostedt (Any others on the RCU maintainers list). And, the list: rcu@vger.kernel.org Could anyone Ack the patch? Looks safe and straight forward. On Mon, Dec 02, 2019 at 12:03:48AM +0530, Amol Grover wrote: > Add __rcu annotation to RCU-protected global pointer auditd_conn. > > auditd_conn is an RCU-protected global pointer,i.e., accessed > via RCU methods rcu_dereference() and rcu_assign_pointer(), > hence it must be annotated with __rcu for sparse to report > warnings/errors correctly. > > Fix multiple instances of the sparse error: > error: incompatible types in comparison expression > (different address spaces) > > Reviewed-by: Joel Fernandes (Google) > Signed-off-by: Amol Grover > --- > v3: > - update changelog to be more descriptive > > v2: > - fix erroneous RCU pointer initialization > > kernel/audit.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/kernel/audit.c b/kernel/audit.c > index da8dc0db5bd3..ff7cfc61f53d 100644 > --- a/kernel/audit.c > +++ b/kernel/audit.c > @@ -102,12 +102,13 @@ struct audit_net { > * This struct is RCU protected; you must either hold the RCU lock for reading > * or the associated spinlock for writing. > */ > -static struct auditd_connection { > +struct auditd_connection { > struct pid *pid; > u32 portid; > struct net *net; > struct rcu_head rcu; > -} *auditd_conn = NULL; > +}; > +static struct auditd_connection __rcu *auditd_conn; > static DEFINE_SPINLOCK(auditd_conn_lock); > > /* If audit_rate_limit is non-zero, limit the rate of sending audit records > -- > 2.24.0 >