From: David Howells Date: Thu, 28 Jul 2022 09:31:06 +0000 (+0100) Subject: watch_queue: Fix missing rcu annotation X-Git-Tag: Ubuntu-5.15.0-49.55~96 X-Git-Url: https://git.proxmox.com/?p=mirror_ubuntu-jammy-kernel.git;a=commitdiff_plain;h=2d6a1c0c07b5d41122cc9fda302663b6d0455776 watch_queue: Fix missing rcu annotation BugLink: https://bugs.launchpad.net/bugs/1989218 commit e0339f036ef4beb9b20f0b6532a1e0ece7f594c6 upstream. Since __post_watch_notification() walks wlist->watchers with only the RCU read lock held, we need to use RCU methods to add to the list (we already use RCU methods to remove from the list). Fix add_watch_to_object() to use hlist_add_head_rcu() instead of hlist_add_head() for that list. Fixes: c73be61cede5 ("pipe: Add general notification queue support") Signed-off-by: David Howells Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman Signed-off-by: Kamal Mostafa Signed-off-by: Stefan Bader --- diff --git a/kernel/watch_queue.c b/kernel/watch_queue.c index debebcd2664e..7019d337ce86 100644 --- a/kernel/watch_queue.c +++ b/kernel/watch_queue.c @@ -497,7 +497,7 @@ int add_watch_to_object(struct watch *watch, struct watch_list *wlist) unlock_wqueue(wqueue); } - hlist_add_head(&watch->list_node, &wlist->watchers); + hlist_add_head_rcu(&watch->list_node, &wlist->watchers); return 0; } EXPORT_SYMBOL(add_watch_to_object);