qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] keyboard:fix ps2 keyboard can't use


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH] keyboard:fix ps2 keyboard can't use
Date: Wed, 06 May 2015 11:03:35 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0

On 05/06/2015 10:20 AM, address@hidden wrote:

Missing a 'v2' in the subject line (hint: git send-email -v2)

Subject line doesn't make sense, and has incorrect spacing after colon.
 What was wrong with my suggestion that I gave on your v1?

keyboard: handle ps2 typing buffer overrun

> Starting a linux guest with ps2 keyboard, if you type many times during 
> leaving 

Trailing whitespace in your commit message.

> grub and into linux kernel,then you can't use keyboard after linux 
> initialization
> finished. Specally when you setup linux guest from iso file,you will type in 
> grub.

s/Specally/Specifically,/

s/file,you/file, you/

> During grub,the work method of ps2 keyboard is like this:

s/grub,the/grub, the/ (in general, space after comma in English prose;
I'll quit pointing it out)

> First, ps2 keyboard driver send command KBD_CCMD_KBD_ENABLE. Second, if there 
> is
> a keyboard input, then ps2 keyboard driver read data. Third, ps2 keyboard 
> driver 
> send command KBD_CCMD_KBD_ENABLE again.
> After leaving grub and before finishing linux kernel ps2 driver 
> initialization, 
> if you type many times, the input data keep saving in ps2 queue of qemu. 
> Before linux kernel initialize ps2 keyboard,linux call i8042_controller_check,
> if i8042_controller_check return fail, then ps2 keyboard driver will never 
> initialize. 
> 
> (i8042.c in kernel 2.6.32 )
> static int i8042_controller_check(void)
> {
>     if (i8042_flush() == I8042_BUFFER_SIZE)
>         return -ENODEV;
>     return 0;
> }
> static int i8042_flush(void)
> {
>     ...
>     while (((str = i8042_read_status()) & I8042_STR_OBF) && (i < 
> I8042_BUFFER_SIZE)) {
>         udelay(50);
>         data = i8042_read_data();
>         i++;
>     }
>     return i;
> }
> During calling i8042_flush it is full in ps2 queue of qemu. ps_read_data will 
> execute 
> kbd_update_irq(s->update_arg, q->count != 0). Because q->count!=0, 
> kbd_update_irq can 
> set I8042_STR_OBF. Then i8042_flush() will return I8042_BUFFER_SIZE.
> Signed-off-by: Hao Peng<address@hidden>
> ----

Incorrect separator. Git relies on exactly '---' as the division between
commit message and explanatory text, and then ignores any garbage until
the first 'diff' line.  Also missing a diffstat, which 'git
format-patch' will automatically insert as part of the explanatory text.

> diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
> index 9b9a7d7..f4fbcfc 100644
> --- a/hw/input/pckbd.c
> +++ b/hw/input/pckbd.c
> @@ -207,6 +207,8 @@ static uint64_t kbd_read_status(void *opaque, hwaddr addr,
> KBDState *s = opaque;
> int val;
> val = s->status;
> + if(s->write-cmd == KBD_CCMD_KBD_ENABLE)

Your patch is fatally flawed:

$ git am ../\[Qemu-devel\]\ \[PATCH\]\ keyboard\:fix\ ps2\ keyboard\
can\'t\ use.eml
Applying: keyboard:fix ps2 keyboard can't use
fatal: corrupt patch at line 6
Patch failed at 0001 keyboard:fix ps2 keyboard can't use
The copy of the patch that failed is found in:
   /home/eblake/qemu/.git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

You probably pasted the contents of your patch into an email composer
that adjusted whitespace, and in the process made your patch useless.
PLEASE read http://wiki.qemu.org/Contribute/SubmitAPatch, and follow the
advice there for sending a patch.  While it is possible to send a patch
without using 'git send-email', it is so tricky to get it right that we
strongly encourage new contributors to just use what git already
provides.  In particular, I advise that you FIRST send a patch to
yourself using 'git send-email', and then use 'git am' to apply the
patch locally, to make sure that your configuration is correct and that
your patches will survive a round trip through email.  Once you have
that working, then it is okay to send to the list.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]