[PATCH] ACPI: property: Fix mis-use of _Generic()

From: Zenghui Yu
Date: Fri Aug 12 2022 - 07:33:26 EST


It looks wrong to pass __val as the control-expression of _Generic() which
will always return 0U this way and acpi_copy_property_array_uint() is
likely to return -EOVERFLOW error whilst it actually doesn't.

Use __val[i] to match the given type list.

Fixes: 923044133367 ("ACPI: property: Unify integer value reading functions")
Cc: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
Signed-off-by: Zenghui Yu <yuzenghui@xxxxxxxxxx>
---
drivers/acpi/property.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c
index 7b3ad8ed2f4e..1ededa618a88 100644
--- a/drivers/acpi/property.c
+++ b/drivers/acpi/property.c
@@ -1042,7 +1042,7 @@ static int acpi_data_prop_read_single(const struct acpi_device_data *data,
ret = -EPROTO; \
break; \
} \
- if (__items[i].integer.value > _Generic(__val, \
+ if (__items[i].integer.value > _Generic(__val[i], \
u8: U8_MAX, \
u16: U16_MAX, \
u32: U32_MAX, \
--
2.33.0