Skip to content

Commit

Permalink
hp-wmi: check query return value in hp_wmi_perform_query
Browse files Browse the repository at this point in the history
Check BIOS provided return value code in hp_wmi_perform_query and print
a warning on error. Printing is suppressed for HPWMI_RET_UNKNOWN_CMDTYPE
which is returned when the command type is unsupported.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
  • Loading branch information
Anssi Hannula authored and Matthew Garrett committed Mar 28, 2011
1 parent 7751ab8 commit 9af0e0f
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions drivers/platform/x86/hp-wmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,13 @@ struct bios_return {
u32 value;
};

enum hp_return_value {
HPWMI_RET_WRONG_SIGNATURE = 0x02,
HPWMI_RET_UNKNOWN_COMMAND = 0x03,
HPWMI_RET_UNKNOWN_CMDTYPE = 0x04,
HPWMI_RET_INVALID_PARAMETERS = 0x05,
};

static const struct key_entry hp_wmi_keymap[] = {
{ KE_KEY, 0x02, { KEY_BRIGHTNESSUP } },
{ KE_KEY, 0x03, { KEY_BRIGHTNESSDOWN } },
Expand Down Expand Up @@ -171,6 +178,15 @@ static int hp_wmi_perform_query(int query, int write, u32 *buffer,

bios_return = *((struct bios_return *)obj->buffer.pointer);

if (bios_return.return_code) {
if (bios_return.return_code != HPWMI_RET_UNKNOWN_CMDTYPE)
printk(KERN_WARNING PREFIX "query 0x%x returned "
"error 0x%x\n",
query, bios_return.return_code);
kfree(obj);
return bios_return.return_code;
}

memcpy(buffer, &bios_return.value, sizeof(bios_return.value));

kfree(obj);
Expand Down

0 comments on commit 9af0e0f

Please sign in to comment.