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

From: Stephen Rothwell <[email-masked]>
Date: Thu, 12 Dec 2019 13:45:16 +1100

Hi all,

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

drivers/misc/watch_queue.c: In function 'watch_queue_set_filter':
drivers/misc/watch_queue.c:526:2: error: implicit declaration of function 'rcu_swap_protected' [-Werror=implicit-function-declaration]
  526 |  rcu_swap_protected(wqueue->filter, wfilter,
      |  ^~~~~~~~~~~~~~~~~~

Caused by commit

  af8c9224182e ("rcu: Remove rcu_swap_protected()")

interacting with commit

  fe78d401ca6b ("General notification queue with user mmap()'able ring buffer")

from the keys tree.

I have added the following merge fix patch for today:

From: Stephen Rothwell <[email-masked]>
Date: Thu, 12 Dec 2019 13:37:52 +1100
Subject: [PATCH] rcu: fix up for "Remove rcu_swap_protected()"

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 drivers/misc/watch_queue.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/misc/watch_queue.c b/drivers/misc/watch_queue.c
index b3fc59b4ef6c..a4a77ec977ac 100644
--- a/drivers/misc/watch_queue.c
+++ b/drivers/misc/watch_queue.c
@@ -523,8 +523,8 @@ static long watch_queue_set_filter(struct inode *inode,
 	kfree(tf);
 set:
 	inode_lock(inode);
-	rcu_swap_protected(wqueue->filter, wfilter,
-			   lockdep_is_held(&inode->i_rwsem));
+	wfilter = rcu_replace_pointer(wqueue->filter, wfilter,
+				      lockdep_is_held(&inode->i_rwsem));
 	inode_unlock(inode);
 	if (wfilter)
 		kfree_rcu(wfilter, rcu);
-- 
2.24.0

-- 
Cheers,
Stephen Rothwell