diff options
author | Volker Rümelin <vr_qemu@t-online.de> | 2021-05-25 20:14:31 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2021-05-26 11:27:45 +0200 |
commit | 7704bb02dd73070b218fb091cdda79679dab2b8f (patch) | |
tree | e7fdba83c395df7f4441ca9b4a72222a423e5697 /hw/input | |
parent | 76968101f549fb6bb51b4bdea65e8a48307c765d (diff) |
ps2: don't raise an interrupt if queue is full
ps2_queue() behaves differently than the very similar functions
ps2_queue_2() to ps2_queue_4(). The first one calls update_irq()
even if the queue is full, the others don't. Change ps2_queue()
to be consistent with the others.
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Message-Id: <20210525181441.27768-2-vr_qemu@t-online.de>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/input')
-rw-r--r-- | hw/input/ps2.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/hw/input/ps2.c b/hw/input/ps2.c index 7a3fb2b9f6..7c7a158e31 100644 --- a/hw/input/ps2.c +++ b/hw/input/ps2.c @@ -212,6 +212,10 @@ void ps2_raise_irq(PS2State *s) void ps2_queue(PS2State *s, int b) { + if (PS2_QUEUE_SIZE - s->queue.count < 1) { + return; + } + ps2_queue_noirq(s, b); s->update_irq(s->update_arg, 1); } |