Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-changelog

[Xen-changelog] [linux-2.6.18-xen] pvfb: PVFB frontend can send bogus sc

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [linux-2.6.18-xen] pvfb: PVFB frontend can send bogus screen updates
From: "Xen patchbot-linux-2.6.18-xen" <patchbot-linux-2.6.18-xen@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 22 Nov 2007 12:01:02 -0800
Delivery-date: Thu, 22 Nov 2007 12:04:20 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1195232146 0
# Node ID ca05cf1a9bdc2c7604b95fd085fa5abe067c969a
# Parent  fced90d566f1158ba1c8593554571f77e25f7118
pvfb: PVFB frontend can send bogus screen updates

The PVFB frontend can get confused and send a screen update to the
backend when the screen is actually clean.  Such an update asks for
the impossible rectangle (x1, x2, y1, y2) = (INT_MAX, 0, INT_MAX, 0).
Fix by setting the dirty flag in the obvious place: when the dirty
rectangle is grown.

Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx>
---
 drivers/xen/fbfront/xenfb.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletion(-)

diff -r fced90d566f1 -r ca05cf1a9bdc drivers/xen/fbfront/xenfb.c
--- a/drivers/xen/fbfront/xenfb.c       Sat Nov 10 10:18:28 2007 +0000
+++ b/drivers/xen/fbfront/xenfb.c       Fri Nov 16 16:55:46 2007 +0000
@@ -201,6 +201,11 @@ static void xenfb_update_screen(struct x
 
        mutex_unlock(&info->mm_lock);
 
+       if (x2 < x1 || y2 < y1) {
+               printk("xenfb_update_screen bogus rect %d %d %d %d\n",
+                      x1, x2, y1, y2);
+               WARN_ON(1);
+       }
        xenfb_do_update(info, x1, y1, x2 - x1, y2 - y1);
 }
 
@@ -252,7 +257,6 @@ static void xenfb_timer(unsigned long da
 static void xenfb_timer(unsigned long data)
 {
        struct xenfb_info *info = (struct xenfb_info *)data;
-       info->dirty = 1;
        wake_up(&info->wq);
 }
 
@@ -272,6 +276,7 @@ static void __xenfb_refresh(struct xenfb
                info->x1 = x1;
        if (info->x2 < x2)
                info->x2 = x2;
+       info->dirty = 1;
 
        if (timer_pending(&info->refresh))
                return;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [linux-2.6.18-xen] pvfb: PVFB frontend can send bogus screen updates, Xen patchbot-linux-2.6.18-xen <=