diff options
Diffstat (limited to 'drivers/platform/x86/hp-wmi.c')
| -rw-r--r-- | drivers/platform/x86/hp-wmi.c | 12 | 
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c index 6bcbbb375401..a881b709af25 100644 --- a/drivers/platform/x86/hp-wmi.c +++ b/drivers/platform/x86/hp-wmi.c @@ -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); @@ -300,7 +300,7 @@ static int __init hp_wmi_bios_2008_later(void)  static int __init hp_wmi_bios_2009_later(void)  { -	int state = 0; +	u8 state[128];  	int ret = hp_wmi_perform_query(HPWMI_FEATURE2_QUERY, HPWMI_READ, &state,  				       sizeof(state), sizeof(state));  	if (!ret) @@ -380,7 +380,7 @@ static int hp_wmi_rfkill2_refresh(void)  	int err, i;  	err = hp_wmi_perform_query(HPWMI_WIRELESS2_QUERY, HPWMI_READ, &state, -				   0, sizeof(state)); +				   sizeof(state), sizeof(state));  	if (err)  		return err; @@ -778,7 +778,7 @@ static int __init hp_wmi_rfkill2_setup(struct platform_device *device)  	int err, i;  	err = hp_wmi_perform_query(HPWMI_WIRELESS2_QUERY, HPWMI_READ, &state, -				   0, sizeof(state)); +				   sizeof(state), sizeof(state));  	if (err)  		return err < 0 ? err : -EINVAL;  |