From: Eric Blake <eblake@redhat.com>
To: penghao122@sina.com, qemu-devel <qemu-devel@nongnu.org>
Cc: qemu-stable <qemu-stable@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] keyboard:fix ps2 keyboard can't use
Date: Wed, 06 May 2015 11:03:35 -0600 [thread overview]
Message-ID: <554A4967.2050306@redhat.com> (raw)
In-Reply-To: <20150506162011.55A5049ED81@webmail.sinamail.sina.com.cn>
[-- Attachment #1: Type: text/plain, Size: 4135 bytes --]
On 05/06/2015 10:20 AM, penghao122@sina.com 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<penghao122@sina.com>
> ----
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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
next prev parent reply other threads:[~2015-05-06 17:03 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-06 16:20 [Qemu-devel] [PATCH] keyboard:fix ps2 keyboard can't use penghao122
2015-05-06 17:03 ` Eric Blake [this message]
2015-05-06 17:05 ` Eric Blake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=554A4967.2050306@redhat.com \
--to=eblake@redhat.com \
--cc=penghao122@sina.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.