Commit 6ccb1cea authored by Tony Luck's avatar Tony Luck Committed by Wen Jin
Browse files

ACPI, APEI, EINJ: Refuse to inject into the zero page

mainline inclusion
from mainline-v5.19-rc1
commit ab59c893
category: feature
bugzilla: https://gitee.com/openeuler/intel-kernel/issues/I8ZRE0
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ab59c89396c007c360b1a4d762732d1621ff5456



--------------------------------

Some validation tests dynamically inject errors into memory used by
applications to check that the system can recover from a variety of
poison consumption sceenarios.

But sometimes the virtual address picked by these tests is mapped to
the zero page.

This causes additional unexpected machine checks as other processes that
map the zero page also consume the poison.

Disallow injection to the zero page.

Intel-SIG: commit ab59c893 ACPI, APEI, EINJ: Refuse to inject into the zero page.
Backport to avoid injecting into zero page.

Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: default avatarWen Jin <wen.jin@intel.com>
parent d5c6fe96
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -550,6 +550,9 @@ static int einj_error_inject(u32 type, u32 flags, u64 param1, u64 param2,
	     !arch_is_platform_page(base_addr)))
		return -EINVAL;

	if (is_zero_pfn(base_addr >> PAGE_SHIFT))
		return -EADDRINUSE;

inject:
	mutex_lock(&einj_mutex);
	rc = __einj_error_inject(type, flags, param1, param2, param3, param4);