From: Greg Kroah-Hartman Date: Wed, 9 Feb 2022 13:14:05 +0000 (+0100) Subject: 4.14-stable patches X-Git-Tag: v4.9.301~11 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1305fe2946fb284770f603e677f2dbe0a38b4aef;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: x86-mm-mm-hwpoison-fix-the-unmap-kernel-1-1-pages-check-condition.patch --- diff --git a/queue-4.14/series b/queue-4.14/series index 8a9e665bdad..eeb922d58f9 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -1,2 +1,3 @@ cgroup-v1-require-capabilities-to-set-release_agent.patch moxart-fix-potential-use-after-free-on-remove-path.patch +x86-mm-mm-hwpoison-fix-the-unmap-kernel-1-1-pages-check-condition.patch diff --git a/queue-4.14/x86-mm-mm-hwpoison-fix-the-unmap-kernel-1-1-pages-check-condition.patch b/queue-4.14/x86-mm-mm-hwpoison-fix-the-unmap-kernel-1-1-pages-check-condition.patch new file mode 100644 index 00000000000..2aa4b1c088f --- /dev/null +++ b/queue-4.14/x86-mm-mm-hwpoison-fix-the-unmap-kernel-1-1-pages-check-condition.patch @@ -0,0 +1,35 @@ +From luofei@unicloud.com Wed Feb 9 14:10:31 2022 +From: luofei +Date: Mon, 7 Feb 2022 22:20:28 -0500 +Subject: x86/mm, mm/hwpoison: Fix the unmap kernel 1:1 pages check condition +To: , , , , , , +Cc: , , luofei +Message-ID: <20220208032028.852302-1-luofei@unicloud.com> + +From: luofei + +When fd0e786d9d09 ("x86/mm, mm/hwpoison: Don't unconditionally unmap +kernel 1:1 pages") was backported to 4.14.y, the logic was reversed when +calling memory_failure() to determine whether it needs to unmap the +kernel page. Only when memory_failure() returns successfully, the kernel +page can be unmapped. + +Signed-off-by: luofei +Cc: stable@vger.kernel.org #v4.14.x +Cc: stable@vger.kernel.org #v4.15.x +Signed-off-by: Greg Kroah-Hartman +--- + arch/x86/kernel/cpu/mcheck/mce.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/x86/kernel/cpu/mcheck/mce.c ++++ b/arch/x86/kernel/cpu/mcheck/mce.c +@@ -589,7 +589,7 @@ static int srao_decode_notifier(struct n + + if (mce_usable_address(mce) && (mce->severity == MCE_AO_SEVERITY)) { + pfn = mce->addr >> PAGE_SHIFT; +- if (memory_failure(pfn, MCE_VECTOR, 0)) ++ if (!memory_failure(pfn, MCE_VECTOR, 0)) + mce_unmap_kpfn(pfn); + } +