On Wed, Apr 19, 2017 at 6:21 PM, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > On Sun, Apr 9, 2017 at 4:56 PM, Carlo Caione <carlo@xxxxxxxxxx> wrote: >> From: Carlo Caione <carlo@xxxxxxxxxxxx> >> >> hp_wmi_tablet_state() fails to return the correct error code when >> hp_wmi_perform_query() returns the HP WMI query specific error code >> that is a positive value. > >> int ret = hp_wmi_perform_query(HPWMI_HARDWARE_QUERY, 0, &state, >> sizeof(state), sizeof(state)); >> if (ret) >> - return ret; >> + return -EINVAL; > > Shouldn't be something like > > if (ret) > return ret < 0 ? ret : -EINVAL; > > Looking into the code it looks like it may return all possible values: > 0, negative, positive. When the HP WMI query returns a positive value something went wrong. hp_wmi_perform_query() returns 0 on success. -- Carlo Caione | +39.340.80.30.096 | Endless