[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] xenfb: Fix overzealous ring test
From: |
Wei Liu |
Subject: |
Re: [Qemu-devel] [PATCH] xenfb: Fix overzealous ring test |
Date: |
Mon, 18 Apr 2016 15:40:15 +0100 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Mon, Apr 18, 2016 at 02:41:48PM +0200, Samuel Thibault wrote:
> From: Wei Liu <address@hidden>
>
> pv-grub booting got broken with recent qemu-xen, due to
> ac0487e1d2ae811cd4d035741a109a4ecfb013f1 ('xenfb.c: avoid expensive loops
> when prod <= out_cons')
>
> prod - out_cons can actually be XENFB_OUT_RING_LEN when the ring is exactly
> full, this is a normal condition and should not be excluded.
>
> From: Wei Liu <address@hidden>
> Signed-off-by: Samuel Thibault <address@hidden>
> Tested-by: Hao Xudong <address@hidden>
Hi Samuel,
This patch is already queued by Stefano. After it has been applied
upstream we will backport it to our own tree.
Wei.
> ---
> hw/display/xenfb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
> index 40b096a..9866dfd 100644
> --- a/hw/display/xenfb.c
> +++ b/hw/display/xenfb.c
> @@ -775,7 +775,7 @@ static void xenfb_handle_events(struct XenFB *xenfb)
>
> prod = page->out_prod;
> out_cons = page->out_cons;
> - if (prod - out_cons >= XENFB_OUT_RING_LEN) {
> + if (prod - out_cons > XENFB_OUT_RING_LEN) {
> return;
> }
> xen_rmb(); /* ensure we see ring contents up to prod */
> --
> 2.8.0.rc3
>