]> git.proxmox.com Git - mirror_qemu.git/commitdiff
ps2: don't raise an interrupt if queue is full
authorVolker Rümelin <vr_qemu@t-online.de>
Tue, 25 May 2021 18:14:31 +0000 (20:14 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 26 May 2021 09:27:45 +0000 (11:27 +0200)
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>
hw/input/ps2.c

index 7a3fb2b9f639580829bb0e4c2bbed9869aeb2b0a..7c7a158e313994d2bf2cf8038f47b84b93ac18da 100644 (file)
@@ -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);
 }