Subject: linux-next: build failure after merge of the rcu tree

From: Stephen Rothwell <[email-masked]>
Date: Fri, 17 Jan 2020 14:07:17 +1100

Hi all,

After merging the rcu tree, today's linux-next build (arm
multi_v7_defconfig) failed like this:

security/keys/permission.c: In function 'key_set_acl':
security/keys/permission.c:273:2: error: implicit declaration of function 'rcu_swap_protected' [-Werror=implicit-function-declaration]
  273 |  rcu_swap_protected(key->acl, acl, lockdep_is_held(&key->sem));
      |  ^~~~~~~~~~~~~~~~~~
security/keys/permission.c:273:36: error: implicit declaration of function 'lockdep_is_held'; did you mean 'lockdep_is_held_type'? [-Werror=implicit-function-declaration]
  273 |  rcu_swap_protected(key->acl, acl, lockdep_is_held(&key->sem));
      |                                    ^~~~~~~~~~~~~~~
      |                                    lockdep_is_held_type

Caused by commit

  4414abf89158 ("rcu: Remove rcu_swap_protected()")

interacting with commit

  af94dc1ff4c9 ("keys: Replace uid/gid/perm permissions checking with an ACL")

from the keys tree.

I have added this merge fix patch:

From: Stephen Rothwell <[email-masked]>
Date: Fri, 17 Jan 2020 14:04:13 +1100
Subject: [PATCH] fixup 2 for removal of rcu_swap_protected

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 security/keys/permission.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/security/keys/permission.c b/security/keys/permission.c
index a651b3fd2007..f42e67b51aea 100644
--- a/security/keys/permission.c
+++ b/security/keys/permission.c
@@ -270,7 +270,7 @@ long key_set_acl(struct key *key, struct key_acl *acl)
 		}
 	}
 
-	rcu_swap_protected(key->acl, acl, lockdep_is_held(&key->sem));
+	acl = rcu_replace_pointer(key->acl, acl, lockdep_is_held(&key->sem));
 	key_put_acl(acl);
 	notify_key(key, NOTIFY_KEY_SETATTR, 0);
 	return 0;
-- 
2.24.0

-- 
Cheers,
Stephen Rothwell