]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 12 Jun 2019 11:14:54 +0000 (13:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 12 Jun 2019 11:14:54 +0000 (13:14 +0200)
added patches:
futex-fix-futex-lock-the-wrong-page.patch

queue-4.4/futex-fix-futex-lock-the-wrong-page.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/futex-fix-futex-lock-the-wrong-page.patch b/queue-4.4/futex-fix-futex-lock-the-wrong-page.patch
new file mode 100644 (file)
index 0000000..83fc01d
--- /dev/null
@@ -0,0 +1,41 @@
+From zhangxiaoxu5@huawei.com  Wed Jun 12 13:03:33 2019
+From: ZhangXiaoxu <zhangxiaoxu5@huawei.com>
+Date: Wed, 12 Jun 2019 09:54:25 +0800
+Subject: futex: Fix futex lock the wrong page
+To: <tglx@linutronix.de>, <mingo@redhat.com>, <peterz@infradead.org>, <dvhart@infradead.org>, <linux-kernel@vger.kernel.org>, <zhangxiaoxu5@huawei.com>
+Message-ID: <1560304465-68966-1-git-send-email-zhangxiaoxu5@huawei.com>
+
+From: ZhangXiaoxu <zhangxiaoxu5@huawei.com>
+
+The upstram commit 65d8fc777f6d ("futex: Remove requirement
+for lock_page() in get_futex_key()") use variable 'page' as
+the page head, when merge it to stable branch, the variable
+`page_head` is page head.
+
+In the stable branch, the variable `page` not means the page
+head, when lock the page head, we should lock 'page_head',
+rather than 'page'.
+
+It maybe lead a hung task problem.
+
+Signed-off-by: ZhangXiaoxu <zhangxiaoxu5@huawei.com>
+Cc: stable@vger.kernel.org
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ kernel/futex.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/kernel/futex.c
++++ b/kernel/futex.c
+@@ -593,8 +593,8 @@ again:
+                * applies. If this is really a shmem page then the page lock
+                * will prevent unexpected transitions.
+                */
+-              lock_page(page);
+-              shmem_swizzled = PageSwapCache(page) || page->mapping;
++              lock_page(page_head);
++              shmem_swizzled = PageSwapCache(page_head) || page_head->mapping;
+               unlock_page(page_head);
+               put_page(page_head);
index 5ba3dd8d01a09d1a5053a512fa7bb40dae7d5121..a6aa39aecadbbbc3d440fbe5ff918442c640627e 100644 (file)
@@ -38,3 +38,4 @@ pwm-tiehrpwm-update-shadow-register-for-disabling-pw.patch
 arm-dts-exynos-always-enable-necessary-apio_1v8-and-.patch
 pwm-fix-deadlock-warning-when-removing-pwm-device.patch
 arm-exynos-fix-undefined-instruction-during-exynos54.patch
+futex-fix-futex-lock-the-wrong-page.patch