aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2009-12-03 10:31:57 -0500
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-12-03 20:30:47 -0500
commitdf11303c90406426847255ba498607f15a472a0a (patch)
treeee94ab1ca2d1d607320990465367d9094cb3aa5c /drivers/video
parenta9b5ff99c34e3f6ca7ad7fa01deba2df1108465e (diff)
xen pvfb: Inhibit VM_IO flag to be set on vmalloc-ed framebuffers.
In Xen-paravirt mode, VM_IO flag signifies that the page frame number (PFN) is actually a machine frame number (MFN). This is correct for memory backed by PCI devices, but wrong for memory allocated from System RAM where the PFN != MFN. During page faults, pages with VM_IO, get assigned to special domain I/O domain and as said, the PFN is interpreted as MFN. When Xen hypervisor modifies the PTE it interprets the PFN as the MFN, complains and fails the PTE modification. The end result is an infinitive page fault in the domain. Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/xen-fbfront.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/video/xen-fbfront.c b/drivers/video/xen-fbfront.c
index 54cd91610174..91a68e9eb66d 100644
--- a/drivers/video/xen-fbfront.c
+++ b/drivers/video/xen-fbfront.c
@@ -440,7 +440,7 @@ static int __devinit xenfb_probe(struct xenbus_device *dev,
440 fb_info->fix.type = FB_TYPE_PACKED_PIXELS; 440 fb_info->fix.type = FB_TYPE_PACKED_PIXELS;
441 fb_info->fix.accel = FB_ACCEL_NONE; 441 fb_info->fix.accel = FB_ACCEL_NONE;
442 442
443 fb_info->flags = FBINFO_FLAG_DEFAULT; 443 fb_info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB;
444 444
445 ret = fb_alloc_cmap(&fb_info->cmap, 256, 0); 445 ret = fb_alloc_cmap(&fb_info->cmap, 256, 0);
446 if (ret < 0) { 446 if (ret < 0) {