* [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
* Re: [Qemu-devel] [PATCH] monitor: fix the wrong order of releasing keys
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
1 sibling, 1 reply; 4+ messages in thread
From: Markus Armbruster @ 2013-04-16 7:08 UTC (permalink / raw)
To: Amos Kong; +Cc: qemu-devel, lcapitulino
Amos Kong <akong@redhat.com> writes:
> (qemu) sendkey ctrl_r-scroll_lock-scroll_lock
>
> Executing this command could not let Windows guest panic, it caused by
"could not"?
> 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();
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH] monitor: fix the wrong order of releasing keys
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:21 ` Luiz Capitulino
1 sibling, 0 replies; 4+ messages in thread
From: Luiz Capitulino @ 2013-04-17 13:21 UTC (permalink / raw)
To: Amos Kong; +Cc: qemu-devel
On Tue, 16 Apr 2013 13:47:32 +0800
Amos Kong <akong@redhat.com> wrote:
> (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>
Applied to the qmp branch, thanks.
> ---
> 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();
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH] monitor: fix the wrong order of releasing keys
2013-04-16 7:08 ` Markus Armbruster
@ 2013-04-17 13:28 ` Luiz Capitulino
0 siblings, 0 replies; 4+ messages in thread
From: Luiz Capitulino @ 2013-04-17 13:28 UTC (permalink / raw)
To: Markus Armbruster; +Cc: Amos Kong, qemu-devel
On Tue, 16 Apr 2013 09:08:12 +0200
Markus Armbruster <armbru@redhat.com> wrote:
> Amos Kong <akong@redhat.com> writes:
>
> > (qemu) sendkey ctrl_r-scroll_lock-scroll_lock
> >
> > Executing this command could not let Windows guest panic, it caused by
>
> "could not"?
You can use Windows' editor to setup Windows to panic on a key sequence, and
that feature (or Windows itself) is sensible to the key release ordering.
This caught a problem with the sendkey command conversion to the qapi: we
changed the release key ordering from last to first to first to last.
> > 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();
>
^ permalink raw reply [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).