From 5618d90032ba31458b0b6adca0ee8b39390e3d27 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 19 Nov 2019 06:00:03 +0100 Subject: [PATCH] 4.19-stable patches added patches: memfd-use-radix_tree_deref_slot_protected-to-avoid-the-warning.patch --- ..._slot_protected-to-avoid-the-warning.patch | 38 +++++++++++++++++++ queue-4.19/series | 1 + 2 files changed, 39 insertions(+) create mode 100644 queue-4.19/memfd-use-radix_tree_deref_slot_protected-to-avoid-the-warning.patch diff --git a/queue-4.19/memfd-use-radix_tree_deref_slot_protected-to-avoid-the-warning.patch b/queue-4.19/memfd-use-radix_tree_deref_slot_protected-to-avoid-the-warning.patch new file mode 100644 index 00000000000..a6af83c02b5 --- /dev/null +++ b/queue-4.19/memfd-use-radix_tree_deref_slot_protected-to-avoid-the-warning.patch @@ -0,0 +1,38 @@ +From zhongjiang@huawei.com Tue Nov 19 05:56:14 2019 +From: zhong jiang +Date: Mon, 18 Nov 2019 11:26:08 +0800 +Subject: memfd: Use radix_tree_deref_slot_protected to avoid the warning. +To: , , , +Cc: , +Message-ID: <20191118032610.182862-2-zhongjiang@huawei.com> + +From: zhong jiang + +The commit 99b45e7a1ba1 ("memfd: Fix locking when tagging pins") +introduces the following warning messages. + +*WARNING: suspicious RCU usage in memfd_wait_for_pins* + +It is because we still use radix_tree_deref_slot without read_rcu_lock. +We should use radix_tree_deref_slot_protected instead in the case. + +Cc: stable@vger.kernel.org +Fixes: 99b45e7a1ba1 ("memfd: Fix locking when tagging pins") +Signed-off-by: zhong jiang +Reviewed-by: Matthew Wilcox (Oracle) +Signed-off-by: Greg Kroah-Hartman +--- + mm/memfd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/mm/memfd.c ++++ b/mm/memfd.c +@@ -41,7 +41,7 @@ static void memfd_tag_pins(struct addres + + xa_lock_irq(&mapping->i_pages); + radix_tree_for_each_slot(slot, &mapping->i_pages, &iter, start) { +- page = radix_tree_deref_slot(slot); ++ page = radix_tree_deref_slot_protected(slot, &mapping->i_pages.xa_lock); + if (!page || radix_tree_exception(page)) { + if (radix_tree_deref_retry(page)) { + slot = radix_tree_iter_retry(&iter); diff --git a/queue-4.19/series b/queue-4.19/series index ba0f31751c3..9d0ff425bc3 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -420,3 +420,4 @@ ib-iser-fix-possible-null-deref-at-iser_inv_desc.patch media-ov2680-fix-null-dereference-at-power-on.patch s390-vdso-correct-vdso-mapping-for-compat-tasks.patch net-phy-mdio-bcm-unimac-mark-pm-functions-as-__maybe.patch +memfd-use-radix_tree_deref_slot_protected-to-avoid-the-warning.patch -- 2.47.3