Input: libps2 - fix NAK handling
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 11 May 2023 18:52:44 +0000 (11:52 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 18 May 2023 18:40:32 +0000 (11:40 -0700)
Do not try to process "resend" or "reject" responses from the device
as normal response data for a command.

Reviewed-by: Raul E Rangel <rrangel@chromium.org>
Link: https://lore.kernel.org/r/20230511185252.386941-5-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/serio/libps2.c

index d09450e..14b70a7 100644 (file)
@@ -445,7 +445,7 @@ bool ps2_handle_ack(struct ps2dev *ps2dev, u8 data)
        ps2dev->flags &= ~PS2_FLAG_ACK;
        wake_up(&ps2dev->wait);
 
-       if (data != PS2_RET_ACK)
+       if (!ps2dev->nak && data != PS2_RET_ACK)
                ps2_handle_response(ps2dev, data);
 
        return true;