On Mon, 29 Jul 2019, Hans de Goede wrote: > Commit dbcbabf7da92 ("HID: logitech-dj: fix return value of > logi_dj_recv_query_hidpp_devices") made logi_dj_recv_query_hidpp_devices > return the return value of hid_hw_raw_request instead of unconditionally > returning 0. > > But hid_hw_raw_request returns the report-size on a successful request > (and a negative error-code on failure) where as the callers of > logi_dj_recv_query_hidpp_devices expect a 0 return on success. > > This commit fixes things so that either the negative error gets returned > or 0 on success, fixing HID++ receivers such as the Logitech nano receivers > no longer working. > > Cc: YueHaibing <yuehaibing@xxxxxxxxxx> > Cc: Rafael J. Wysocki <rjw@xxxxxxxxxxxxx> > Cc: Lionel Landwerlin <lionel.g.landwerlin@xxxxxxxxx> > Fixes: dbcbabf7da92 ("HID: logitech-dj: fix return value of logi_dj_recv_query_hidpp_devices") > Reported-by: Lionel Landwerlin <lionel.g.landwerlin@xxxxxxxxx> > Reported-by: Rafael J. Wysocki <rjw@xxxxxxxxxxxxx> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > drivers/hid/hid-logitech-dj.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/hid/hid-logitech-dj.c b/drivers/hid/hid-logitech-dj.c > index 6196217a7d93..b7c3edf21235 100644 > --- a/drivers/hid/hid-logitech-dj.c > +++ b/drivers/hid/hid-logitech-dj.c > @@ -1125,7 +1125,7 @@ static int logi_dj_recv_query_hidpp_devices(struct dj_receiver_dev *djrcv_dev) > HID_REQ_SET_REPORT); > > kfree(hidpp_report); > - return retval; > + return (retval < 0) ? retval : 0; > } > Applied to for-5.3/upstream-fixes; I will be sending it to Linus in a couple days. Thanks, -- Jiri Kosina SUSE Labs