From: Joel Fernandes <joel@joelfernandes.org> To: Amol Grover <frextrite@gmail.com> Cc: Paul Moore <paul@paul-moore.com>, Eric Paris <eparis@redhat.com>, linux-kernel-mentees@lists.linuxfoundation.org, Shuah Khan <skhan@linuxfoundation.org>, linux-audit@redhat.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH] kernel: audit.c: Add __rcu notation to RCU pointer Date: Tue, 26 Nov 2019 21:29:25 -0500 [thread overview] Message-ID: <20191127022925.GB157739@google.com> (raw) In-Reply-To: <20191126172723.GA12759@workstation-kernel-dev> On Tue, Nov 26, 2019 at 10:57:23PM +0530, Amol Grover wrote: > add __rcu notation to RCU protected global pointer auditd_conn > > Fixes multiple instances of sparse error: > error: incompatible types in comparison expression > (different address spaces) > > Signed-off-by: Amol Grover <frextrite@gmail.com> > --- > kernel/audit.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/kernel/audit.c b/kernel/audit.c > index da8dc0db5bd3..30e7fc9b8da2 100644 > --- a/kernel/audit.c > +++ b/kernel/audit.c > @@ -102,12 +102,14 @@ 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; > +RCU_INIT_POINTER(auditd_conn); Looks like this causes a build error. Always please build test your patches in the very least. And I also did not understand how RCU_INIT_POINTER can even be used outside of a function. In C, executable code cannot be outside functions. Is doing the following not sufficient to fix the sparse issue? thanks, - Joel ---8<----------------------- diff --git a/kernel/audit.c b/kernel/audit.c index 49b6049b26ac..c5d4b5a2dea1 100644 --- a/kernel/audit.c +++ b/kernel/audit.c @@ -108,8 +108,8 @@ struct auditd_connection { struct net *net; struct rcu_head rcu; }; -static struct auditd_connection __rcu *auditd_conn; -RCU_INIT_POINTER(auditd_conn); +static struct auditd_connection __rcu *auditd_conn = NULL; + static DEFINE_SPINLOCK(auditd_conn_lock); /* If audit_rate_limit is non-zero, limit the rate of sending audit records
WARNING: multiple messages have this Message-ID (diff)
From: Joel Fernandes <joel@joelfernandes.org> To: Amol Grover <frextrite@gmail.com> Cc: Paul Moore <paul@paul-moore.com>, linux-kernel@vger.kernel.org, Eric Paris <eparis@redhat.com>, linux-audit@redhat.com, linux-kernel-mentees@lists.linuxfoundation.org Subject: Re: [Linux-kernel-mentees] [PATCH] kernel: audit.c: Add __rcu notation to RCU pointer Date: Tue, 26 Nov 2019 21:29:25 -0500 [thread overview] Message-ID: <20191127022925.GB157739@google.com> (raw) In-Reply-To: <20191126172723.GA12759@workstation-kernel-dev> On Tue, Nov 26, 2019 at 10:57:23PM +0530, Amol Grover wrote: > add __rcu notation to RCU protected global pointer auditd_conn > > Fixes multiple instances of sparse error: > error: incompatible types in comparison expression > (different address spaces) > > Signed-off-by: Amol Grover <frextrite@gmail.com> > --- > kernel/audit.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/kernel/audit.c b/kernel/audit.c > index da8dc0db5bd3..30e7fc9b8da2 100644 > --- a/kernel/audit.c > +++ b/kernel/audit.c > @@ -102,12 +102,14 @@ 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; > +RCU_INIT_POINTER(auditd_conn); Looks like this causes a build error. Always please build test your patches in the very least. And I also did not understand how RCU_INIT_POINTER can even be used outside of a function. In C, executable code cannot be outside functions. Is doing the following not sufficient to fix the sparse issue? thanks, - Joel ---8<----------------------- diff --git a/kernel/audit.c b/kernel/audit.c index 49b6049b26ac..c5d4b5a2dea1 100644 --- a/kernel/audit.c +++ b/kernel/audit.c @@ -108,8 +108,8 @@ struct auditd_connection { struct net *net; struct rcu_head rcu; }; -static struct auditd_connection __rcu *auditd_conn; -RCU_INIT_POINTER(auditd_conn); +static struct auditd_connection __rcu *auditd_conn = NULL; + static DEFINE_SPINLOCK(auditd_conn_lock); /* If audit_rate_limit is non-zero, limit the rate of sending audit records _______________________________________________ Linux-kernel-mentees mailing list Linux-kernel-mentees@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
next prev parent reply other threads:[~2019-11-27 2:29 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-26 17:27 [PATCH] kernel: audit.c: Add __rcu notation to RCU pointer Amol Grover 2019-11-26 17:27 ` [Linux-kernel-mentees] " Amol Grover 2019-11-27 2:29 ` Joel Fernandes [this message] 2019-11-27 2:29 ` Joel Fernandes 2019-11-27 5:28 ` Amol Grover 2019-11-27 5:28 ` [Linux-kernel-mentees] " Amol Grover 2019-11-27 15:25 ` Joel Fernandes 2019-11-27 15:25 ` [Linux-kernel-mentees] " Joel Fernandes 2019-11-28 15:09 ` Amol Grover 2019-11-28 15:09 ` [Linux-kernel-mentees] " Amol Grover 2019-11-29 20:08 ` Joel Fernandes 2019-11-29 20:08 ` [Linux-kernel-mentees] " Joel Fernandes
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20191127022925.GB157739@google.com \ --to=joel@joelfernandes.org \ --cc=eparis@redhat.com \ --cc=frextrite@gmail.com \ --cc=linux-audit@redhat.com \ --cc=linux-kernel-mentees@lists.linuxfoundation.org \ --cc=linux-kernel@vger.kernel.org \ --cc=paul@paul-moore.com \ --cc=skhan@linuxfoundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.