All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] monitor: fix the wrong order of releasing keys
@ 2013-04-16  5:47 Amos Kong
  2013-04-16  7:08 ` Markus Armbruster
  2013-04-17 13:21 ` Luiz Capitulino
  0 siblings, 2 replies; 4+ messages in thread
From: Amos Kong @ 2013-04-16  5:47 UTC (permalink / raw)
  To: lcapitulino; +Cc: qemu-devel

(qemu) sendkey ctrl_r-scroll_lock-scroll_lock

Executing this command could not let Windows guest panic, it caused by
the wrong order of releasing keys. This problem was introduced by
commit e4c8f004c55d9da3eae3e14df740238bf805b5d6.

The right release order should be starting from last item.

Signed-off-by: Amos Kong <akong@redhat.com>
---
 ui/input.c |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/ui/input.c b/ui/input.c
index 9abef0c..ecfeb43 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -234,13 +234,11 @@ static void free_keycodes(void)
 
 static void release_keys(void *opaque)
 {
-    int i;
-
-    for (i = 0; i < keycodes_size; i++) {
-        if (keycodes[i] & 0x80) {
+    while (keycodes_size > 0) {
+        if (keycodes[--keycodes_size] & 0x80) {
             kbd_put_keycode(0xe0);
         }
-        kbd_put_keycode(keycodes[i]| 0x80);
+        kbd_put_keycode(keycodes[keycodes_size] | 0x80);
     }
 
     free_keycodes();
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-04-17 13:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-16  5:47 [Qemu-devel] [PATCH] monitor: fix the wrong order of releasing keys Amos Kong
2013-04-16  7:08 ` Markus Armbruster
2013-04-17 13:28   ` Luiz Capitulino
2013-04-17 13:21 ` Luiz Capitulino

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.