Commit d86d4f8cbb5a for kernel

commit d86d4f8cbb5a55a3b9b86f7b5ab8c4cdda600a3f
Author: Xu Rao <raoxu@uniontech.com>
Date:   Wed Jun 24 17:47:39 2026 +0800

    Input: gscps2 - advance receive buffer write index

    Commit 44f920069911 ("Input: gscps2 - use guard notation when
    acquiring spinlock") moved the receive loop into gscps2_read_data()
    and gscps2_report_data().

    While moving the code, it preserved the writes to
    buffer[ps2port->append], but omitted the following producer index
    update from the original loop:

            ps2port->append = (ps2port->append + 1) & BUFFER_SIZE;

    As a result, append never advances. Since gscps2_report_data() only
    reports bytes while act != append, the receive buffer always appears
    empty and no keyboard or mouse data reaches the serio core.

    Restore the omitted index update.

    Fixes: 44f920069911 ("Input: gscps2 - use guard notation when acquiring spinlock")
    Cc: stable@vger.kernel.org # 6.13+
    Signed-off-by: Xu Rao <raoxu@uniontech.com>
    Link: https://patch.msgid.link/460B5655BA580C60+20260624094739.850306-1-raoxu@uniontech.com
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c
index 22b2f57fd91f..bf9b993f5733 100644
--- a/drivers/input/serio/gscps2.c
+++ b/drivers/input/serio/gscps2.c
@@ -219,6 +219,7 @@ static void gscps2_read_data(struct gscps2port *ps2port)
 		ps2port->buffer[ps2port->append].str = status;
 		ps2port->buffer[ps2port->append].data =
 				gscps2_readb_input(ps2port->addr);
+		ps2port->append = (ps2port->append + 1) & BUFFER_SIZE;
 	} while (true);
 }