]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
Input: gscps2 - advance receive buffer write index
authorXu Rao <raoxu@uniontech.com>
Wed, 24 Jun 2026 09:47:39 +0000 (17:47 +0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 27 Jun 2026 05:42:56 +0000 (22:42 -0700)
commitd86d4f8cbb5a55a3b9b86f7b5ab8c4cdda600a3f
treeb18acec840133546891403ae5ecc78b7e1b54550
parent2d6d33e45dd4fb768758d5f6e747deadcd66b9fc
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>
drivers/input/serio/gscps2.c