[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230118063504.58026-1-xueshuai@linux.alibaba.com>
Date: Wed, 18 Jan 2023 14:35:04 +0800
From: Shuai Xue <xueshuai@...ux.alibaba.com>
To: rafael@...nel.org, tony.luck@...el.com, bp@...en8.de
Cc: lenb@...nel.org, james.morse@....com, jaylu102@....com,
benjamin.cheatham@....com, dan.j.williams@...el.com,
linux-acpi@...r.kernel.org, linux-kernel@...r.kernel.org,
baolin.wang@...ux.alibaba.com, xueshuai@...ux.alibaba.com,
zhuo.song@...ux.alibaba.com
Subject: [PATCH] ACPI: APEI: EINJ: Limit error type to 32-bit width
The bit map of error types to inject is 32-bit width[1]. Add parameter
check to reflect the fact.
[1] ACPI Specification 6.4, Section 18.6.4. Error Types
Signed-off-by: Shuai Xue <xueshuai@...ux.alibaba.com>
---
drivers/acpi/apei/einj.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c
index ab86b2f4e719..b4373e575660 100644
--- a/drivers/acpi/apei/einj.c
+++ b/drivers/acpi/apei/einj.c
@@ -616,6 +616,10 @@ static int error_type_set(void *data, u64 val)
u32 available_error_type = 0;
u32 tval, vendor;
+ /* Only low 32 bits for error type are valid */
+ if (val & GENMASK_ULL(63, 32))
+ return -EINVAL;
+
/*
* Vendor defined types have 0x80000000 bit set, and
* are not enumerated by ACPI_EINJ_GET_ERROR_TYPE
--
2.20.1.12.g72788fdb
Powered by blists - more mailing lists