OSDN Git Service

audit: Add __rcu annotation to RCU pointer
authorAmol Grover <frextrite@gmail.com>
Sun, 1 Dec 2019 18:33:48 +0000 (00:03 +0530)
committerPaul Moore <paul@paul-moore.com>
Mon, 9 Dec 2019 20:19:03 +0000 (15:19 -0500)
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>
[PM: tweak subject line]
Signed-off-by: Paul Moore <paul@paul-moore.com>
kernel/audit.c

index 8e09f0f..17b0d52 100644 (file)
@@ -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