From: Shuai Xue Date: Wed, 18 Jan 2023 06:35:04 +0000 (+0800) Subject: ACPI: APEI: EINJ: Limit error type to 32-bit width X-Git-Tag: v6.6.7~3503^2~1^5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=53fc7e80f3aa9c34d396bcfbcc03a4c0d2eaac96;p=platform%2Fkernel%2Flinux-starfive.git 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 Reviewed-by: Tony Luck Signed-off-by: Rafael J. Wysocki --- diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c index ab86b2f..b4373e5 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