linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Bluetooth: hidp: Fix error checks in hidp_get/set_raw_report
@ 2019-09-06  9:41 Dan Elkouby
  2019-09-06 10:13 ` Dan Carpenter
  2019-09-06 13:56 ` [PATCH] Bluetooth: hidp: Fix error checks in hidp_get/set_raw_report Marcel Holtmann
  0 siblings, 2 replies; 13+ messages in thread
From: Dan Elkouby @ 2019-09-06  9:41 UTC (permalink / raw)
  Cc: Dan Elkouby, Marcel Holtmann, Johan Hedberg, David S. Miller,
	Dan Carpenter, Fabian Henneke, Brian Norris, Al Viro,
	Andrea Parri, linux-bluetooth, netdev, linux-kernel

Commit 48d9cc9d85dd ("Bluetooth: hidp: Let hidp_send_message return
number of queued bytes") changed hidp_send_message to return non-zero
values on success, which some other bits did not expect. This caused
spurious errors to be propagated through the stack, breaking some (all?)
drivers, such as hid-sony for the Dualshock 4 in Bluetooth mode.

Signed-off-by: Dan Elkouby <streetwalkermc@gmail.com>
---
 net/bluetooth/hidp/core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c
index 8d889969ae7e..bef84b95e2c4 100644
--- a/net/bluetooth/hidp/core.c
+++ b/net/bluetooth/hidp/core.c
@@ -267,7 +267,7 @@ static int hidp_get_raw_report(struct hid_device *hid,
 	set_bit(HIDP_WAITING_FOR_RETURN, &session->flags);
 	data[0] = report_number;
 	ret = hidp_send_ctrl_message(session, report_type, data, 1);
-	if (ret)
+	if (ret < 0)
 		goto err;
 
 	/* Wait for the return of the report. The returned report
@@ -343,7 +343,7 @@ static int hidp_set_raw_report(struct hid_device *hid, unsigned char reportnum,
 	data[0] = reportnum;
 	set_bit(HIDP_WAITING_FOR_SEND_ACK, &session->flags);
 	ret = hidp_send_ctrl_message(session, report_type, data, count);
-	if (ret)
+	if (ret < 0)
 		goto err;
 
 	/* Wait for the ACK from the device. */
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2019-09-23 20:34 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-06  9:41 [PATCH] Bluetooth: hidp: Fix error checks in hidp_get/set_raw_report Dan Elkouby
2019-09-06 10:13 ` Dan Carpenter
2019-09-06 10:40   ` Dan Elkouby
2019-09-06 10:58     ` Dan Carpenter
2019-09-06 11:06   ` [PATCH] Bluetooth: hidp: Fix assumptions on the return value of hidp_send_message Dan Elkouby
2019-09-06 11:11     ` Dan Carpenter
2019-09-06 11:31     ` Jiri Kosina
2019-09-06 13:57       ` Marcel Holtmann
2019-09-23 20:33         ` Andrey Smirnov
2019-09-06 13:56 ` [PATCH] Bluetooth: hidp: Fix error checks in hidp_get/set_raw_report Marcel Holtmann
2019-09-06 14:05   ` Dan Elkouby
2019-09-06 14:08   ` Dan Carpenter
2019-09-06 14:12     ` Marcel Holtmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).