From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46367) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1as8V3-0000eb-Av for qemu-devel@nongnu.org; Mon, 18 Apr 2016 08:41:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1as8Uz-0002o4-8A for qemu-devel@nongnu.org; Mon, 18 Apr 2016 08:41:57 -0400 Received: from mail3-relais-sop.national.inria.fr ([192.134.164.104]:47046) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1as8Uz-0002nc-1Z for qemu-devel@nongnu.org; Mon, 18 Apr 2016 08:41:53 -0400 From: Samuel Thibault Date: Mon, 18 Apr 2016 14:41:48 +0200 Message-Id: <1460983308-28000-1-git-send-email-samuel.thibault@ens-lyon.org> Subject: [Qemu-devel] [PATCH] xenfb: Fix overzealous ring test List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Wei Liu , Stefano Stabellini , Anthony Perard , xen-devel@lists.xensource.com, Samuel Thibault From: Wei Liu 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 Signed-off-by: Samuel Thibault Tested-by: Hao Xudong --- 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