]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mei: vsc: Fix wrong invocation of ACPI SID method
authorHans de Goede <hdegoede@redhat.com>
Mon, 3 Jun 2024 20:50:50 +0000 (22:50 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Jun 2024 15:46:00 +0000 (17:46 +0200)
When using an initializer for a union only one of the union members
must be initialized. The initializer for the acpi_object union variable
passed as argument to the SID ACPI method was initializing both
the type and the integer members of the union.

Unfortunately rather then complaining about this gcc simply ignores
the first initializer and only used the second integer.value = 1
initializer. Leaving type set to 0 which leads to the argument being
skipped by acpi acpi_ns_evaluate() resulting in:

ACPI Warning: \_SB.PC00.SPI1.SPFD.CVFD.SID: Insufficient arguments -
Caller passed 0, method requires 1 (20240322/nsarguments-232)

Fix this by initializing only the integer struct part of the union
and initializing both members of the integer struct.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Fixes: 566f5ca97680 ("mei: Add transport driver for IVSC device")
Reviewed-by: Wentong Wu <wentong.wu@intel.com>
Link: https://lore.kernel.org/r/20240603205050.505389-1-hdegoede@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mei/vsc-fw-loader.c

index ffa4ccd96a10430a5e477869e9d093be59579729..596a9d695dfc14b13fb50847c13e4e335edf62d4 100644 (file)
@@ -252,7 +252,7 @@ static int vsc_get_sensor_name(struct vsc_fw_loader *fw_loader,
 {
        struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER };
        union acpi_object obj = {
-               .type = ACPI_TYPE_INTEGER,
+               .integer.type = ACPI_TYPE_INTEGER,
                .integer.value = 1,
        };
        struct acpi_object_list arg_list = {