--- /dev/null
+From luofei@unicloud.com Wed Feb 9 14:10:31 2022
+From: luofei <luofei@unicloud.com>
+Date: Mon, 7 Feb 2022 22:20:28 -0500
+Subject: x86/mm, mm/hwpoison: Fix the unmap kernel 1:1 pages check condition
+To: <stable@vger.kernel.org>, <tony.luck@intel.com>, <bp@alien8.de>, <tglx@linutronix.de>, <mingo@redhat.com>, <hpa@zytor.com>, <x86@kernel.org>
+Cc: <linux-edac@vger.kernel.org>, <linux-kernel@vger.kernel.org>, luofei <luofei@unicloud.com>
+Message-ID: <20220208032028.852302-1-luofei@unicloud.com>
+
+From: luofei <luofei@unicloud.com>
+
+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 <luofei@unicloud.com>
+Cc: stable@vger.kernel.org #v4.14.x
+Cc: stable@vger.kernel.org #v4.15.x
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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);
+ }
+