diff mbox series

[3/5] Input: cypress_ps2 - report timeouts when reading command status

Message ID 20240628224728.2180126-3-dmitry.torokhov@gmail.com
State Accepted
Commit 8bccf667f62a2351fd0b2a2fe5ba90806702c048
Headers show
Series [1/5] Input: cypress_ps2 - clean up setting reporting rate | expand

Commit Message

Dmitry Torokhov June 28, 2024, 10:47 p.m. UTC
Report -ETIMEDOUT error code from cypress_ps2_read_cmd_status() when
device does not send enough data within the allotted time in response
to a command.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
 drivers/input/mouse/cypress_ps2.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/drivers/input/mouse/cypress_ps2.c b/drivers/input/mouse/cypress_ps2.c
index fcc3921e49e0..8e17cd0bc437 100644
--- a/drivers/input/mouse/cypress_ps2.c
+++ b/drivers/input/mouse/cypress_ps2.c
@@ -115,9 +115,12 @@  static int cypress_ps2_read_cmd_status(struct psmouse *psmouse,
 	if (rc < 0)
 		goto out;
 
-	wait_event_timeout(ps2dev->wait,
-			(psmouse->pktcnt >= pktsize),
-			msecs_to_jiffies(CYTP_CMD_TIMEOUT));
+	if (!wait_event_timeout(ps2dev->wait,
+				psmouse->pktcnt >= pktsize,
+				msecs_to_jiffies(CYTP_CMD_TIMEOUT))) {
+		rc = -ETIMEDOUT;
+		goto out;
+	}
 
 	memcpy(param, psmouse->packet, pktsize);