Skip to content

Commit

Permalink
xen pvfb: Inhibit VM_IO flag to be set on vmalloc-ed framebuffers.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Konrad Rzeszutek Wilk authored and Jeremy Fitzhardinge committed Dec 4, 2009
1 parent a9b5ff9 commit df11303
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/video/xen-fbfront.c
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ static int __devinit xenfb_probe(struct xenbus_device *dev,
fb_info->fix.type = FB_TYPE_PACKED_PIXELS;
fb_info->fix.accel = FB_ACCEL_NONE;

fb_info->flags = FBINFO_FLAG_DEFAULT;
fb_info->flags = FBINFO_FLAG_DEFAULT | FBINFO_VIRTFB;

ret = fb_alloc_cmap(&fb_info->cmap, 256, 0);
if (ret < 0) {
Expand Down

0 comments on commit df11303

Please sign in to comment.