]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/platform/x86/hp-wmi.c
platform/x86: hp-wmi: Fix ACPI errors caused by too small buffer
[linux.git] / drivers / platform / x86 / hp-wmi.c
index 6bcbbb37540195f47f42899721f1eef354bd9c62..e64ae58ec22b66ab270d23bb7bde79dc4b94ccf8 100644 (file)
@@ -65,7 +65,7 @@ struct bios_args {
        u32 command;
        u32 commandtype;
        u32 datasize;
-       u32 data;
+       u8 data[128];
 };
 
 enum hp_wmi_commandtype {
@@ -216,7 +216,7 @@ static int hp_wmi_perform_query(int query, enum hp_wmi_command command,
                .command = command,
                .commandtype = query,
                .datasize = insize,
-               .data = 0,
+               .data = { 0 },
        };
        struct acpi_buffer input = { sizeof(struct bios_args), &args };
        struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL };
@@ -228,7 +228,7 @@ static int hp_wmi_perform_query(int query, enum hp_wmi_command command,
 
        if (WARN_ON(insize > sizeof(args.data)))
                return -EINVAL;
-       memcpy(&args.data, buffer, insize);
+       memcpy(&args.data[0], buffer, insize);
 
        wmi_evaluate_method(HPWMI_BIOS_GUID, 0, mid, &input, &output);