linux-kernel-mentees.lists.linuxfoundation.org archive mirror
 help / color / mirror / Atom feed
* [Linux-kernel-mentees] [PATCH v3] kernel: audit.c: Add __rcu annotation to RCU pointer
@ 2019-12-01 18:33 Amol Grover
  2019-12-02 21:19 ` Joel Fernandes
  0 siblings, 1 reply; 7+ messages in thread
From: Amol Grover @ 2019-12-01 18:33 UTC (permalink / raw)
  To: Paul Moore, Eric Paris
  Cc: linux-kernel, linux-audit, Joel Fernandes, linux-kernel-mentees

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) <joel@joelfernandes.org>
Signed-off-by: Amol Grover <frextrite@gmail.com>
---
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

_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH v3] kernel: audit.c: Add __rcu annotation to RCU pointer
  2019-12-01 18:33 [Linux-kernel-mentees] [PATCH v3] kernel: audit.c: Add __rcu annotation to RCU pointer Amol Grover
@ 2019-12-02 21:19 ` Joel Fernandes
  2019-12-02 22:26   ` Steven Rostedt
  2019-12-02 23:24   ` Paul Moore
  0 siblings, 2 replies; 7+ messages in thread
From: Joel Fernandes @ 2019-12-02 21:19 UTC (permalink / raw)
  To: Amol Grover
  Cc: Paul Moore, paulmck, linux-kernel, Eric Paris, rcu, linux-audit,
	linux-kernel-mentees, rostedt

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) <joel@joelfernandes.org>
> Signed-off-by: Amol Grover <frextrite@gmail.com>
> ---
> 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
> 
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH v3] kernel: audit.c: Add __rcu annotation to RCU pointer
  2019-12-02 21:19 ` Joel Fernandes
@ 2019-12-02 22:26   ` Steven Rostedt
  2019-12-02 23:34     ` Joel Fernandes
  2019-12-02 23:24   ` Paul Moore
  1 sibling, 1 reply; 7+ messages in thread
From: Steven Rostedt @ 2019-12-02 22:26 UTC (permalink / raw)
  To: Joel Fernandes
  Cc: Paul Moore, paulmck, linux-kernel, Eric Paris, rcu, linux-audit,
	linux-kernel-mentees, rostedt

On Mon, 2 Dec 2019 16:19:15 -0500
Joel Fernandes <joel@joelfernandes.org> wrote:

> Good idea to CC the following on RCU patches:
> Paul McKenney
> Steven Rostedt

I'm fine with this if it doesn't cause any rcu splats with sparse. Not
sure if use cases of RCU requires RCU maintainers Cc'd. Although we can
usually keep people from misusing it ;-)

-- Steve


> (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) <joel@joelfernandes.org>
> > Signed-off-by: Amol Grover <frextrite@gmail.com>
> > ---
> > 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
> >   

_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH v3] kernel: audit.c: Add __rcu annotation to RCU pointer
  2019-12-02 21:19 ` Joel Fernandes
  2019-12-02 22:26   ` Steven Rostedt
@ 2019-12-02 23:24   ` Paul Moore
  2019-12-02 23:34     ` Joel Fernandes
  1 sibling, 1 reply; 7+ messages in thread
From: Paul Moore @ 2019-12-02 23:24 UTC (permalink / raw)
  To: Joel Fernandes
  Cc: paulmck, linux-kernel, Eric Paris, rcu, linux-audit,
	linux-kernel-mentees, rostedt

On Mon, Dec 2, 2019 at 4:19 PM Joel Fernandes <joel@joelfernandes.org> wrote:
> 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.

FWIW, this looks reasonable to me, but I don't see this as a critical
fix that needs to go in during the merge window.  Unless I see any
objections, I'll plan on merging this into audit/next once the merge
window closes.

> 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) <joel@joelfernandes.org>
> > Signed-off-by: Amol Grover <frextrite@gmail.com>
> > ---
> > 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
> >



--
paul moore
www.paul-moore.com
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH v3] kernel: audit.c: Add __rcu annotation to RCU pointer
  2019-12-02 22:26   ` Steven Rostedt
@ 2019-12-02 23:34     ` Joel Fernandes
  0 siblings, 0 replies; 7+ messages in thread
From: Joel Fernandes @ 2019-12-02 23:34 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Paul Moore, paulmck, linux-kernel, Eric Paris, rcu, linux-audit,
	linux-kernel-mentees, rostedt

On Mon, Dec 02, 2019 at 05:26:39PM -0500, Steven Rostedt wrote:
> On Mon, 2 Dec 2019 16:19:15 -0500
> Joel Fernandes <joel@joelfernandes.org> wrote:
> 
> > Good idea to CC the following on RCU patches:
> > Paul McKenney
> > Steven Rostedt
> 
> I'm fine with this if it doesn't cause any rcu splats with sparse. Not
> sure if use cases of RCU requires RCU maintainers Cc'd. Although we can
> usually keep people from misusing it ;-)

Yes true :) Thanks for taking a look.

 - Joel

> 
> -- Steve
> 
> 
> > (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) <joel@joelfernandes.org>
> > > Signed-off-by: Amol Grover <frextrite@gmail.com>
> > > ---
> > > 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
> > >   
> 
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH v3] kernel: audit.c: Add __rcu annotation to RCU pointer
  2019-12-02 23:24   ` Paul Moore
@ 2019-12-02 23:34     ` Joel Fernandes
  2019-12-09 20:31       ` Paul Moore
  0 siblings, 1 reply; 7+ messages in thread
From: Joel Fernandes @ 2019-12-02 23:34 UTC (permalink / raw)
  To: Paul Moore
  Cc: paulmck, linux-kernel, Eric Paris, rcu, linux-audit,
	linux-kernel-mentees, rostedt

On Mon, Dec 02, 2019 at 06:24:29PM -0500, Paul Moore wrote:
> On Mon, Dec 2, 2019 at 4:19 PM Joel Fernandes <joel@joelfernandes.org> wrote:
> > 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.
> 
> FWIW, this looks reasonable to me, but I don't see this as a critical
> fix that needs to go in during the merge window.  Unless I see any
> objections, I'll plan on merging this into audit/next once the merge
> window closes.

Sounds good, thanks!

 - Joel


> > 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) <joel@joelfernandes.org>
> > > Signed-off-by: Amol Grover <frextrite@gmail.com>
> > > ---
> > > 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
> > >
> 
> 
> 
> --
> paul moore
> www.paul-moore.com
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH v3] kernel: audit.c: Add __rcu annotation to RCU pointer
  2019-12-02 23:34     ` Joel Fernandes
@ 2019-12-09 20:31       ` Paul Moore
  0 siblings, 0 replies; 7+ messages in thread
From: Paul Moore @ 2019-12-09 20:31 UTC (permalink / raw)
  To: Joel Fernandes
  Cc: paulmck, linux-kernel, Eric Paris, rcu, linux-audit,
	linux-kernel-mentees, rostedt

On Mon, Dec 2, 2019 at 6:35 PM Joel Fernandes <joel@joelfernandes.org> wrote:
> On Mon, Dec 02, 2019 at 06:24:29PM -0500, Paul Moore wrote:
> > On Mon, Dec 2, 2019 at 4:19 PM Joel Fernandes <joel@joelfernandes.org> wrote:
> > > 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.
> >
> > FWIW, this looks reasonable to me, but I don't see this as a critical
> > fix that needs to go in during the merge window.  Unless I see any
> > objections, I'll plan on merging this into audit/next once the merge
> > window closes.
>
> Sounds good, thanks!

FYI, it's in audit/next now.  Thanks again.

-- 
paul moore
www.paul-moore.com
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-12-09 20:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-01 18:33 [Linux-kernel-mentees] [PATCH v3] kernel: audit.c: Add __rcu annotation to RCU pointer Amol Grover
2019-12-02 21:19 ` Joel Fernandes
2019-12-02 22:26   ` Steven Rostedt
2019-12-02 23:34     ` Joel Fernandes
2019-12-02 23:24   ` Paul Moore
2019-12-02 23:34     ` Joel Fernandes
2019-12-09 20:31       ` Paul Moore

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).