[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-stable] [Qemu-devel] [PATCH] keyboard:fix ps2 keyboard can't u
From: |
Eric Blake |
Subject: |
Re: [Qemu-stable] [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
signature.asc
Description: OpenPGP digital signature