On Tue, 2012-10-23 at 19:12 +0100, Konrad Rzeszutek Wilk wrote: [...] > + /* GUEST_GDTR_BASE and */ > + ctxt->u.pvh.gdtaddr = (unsigned long)gdt; > + /* GUEST_GDTR_LIMIT in the VMCS. */ > + ctxt->u.pvh.gdtsz = (unsigned long)(GDT_SIZE - 1); > + > [...] > - ctxt->gdt_frames[0] = gdt_mfn; > - ctxt->gdt_ents = GDT_ENTRIES; > + ctxt->u.pv.gdt_frames[0] = gdt_mfn; > + ctxt->u.pv.gdt_ents = GDT_ENTRIES;
I guess I've been told and forgotten but why does this need to differ between PV and PVH? Can the hypervisor not take the gfn in gdt_frames[0] = gdt_mfn and figure out the gdtaddr from it? Is this because n the PV case the H/V loads the GDT with the address of its own mapping of the gdt_frames but in the PVH case we have no such mapping because the pagetables don't have a Xen region in them? It's worthy of a comment in any case. [...] > + /* PVH TBD/FIXME: future work */ [...] > + /* PVH: TBD/FIXME: debug and fix eio map to work with pvh */ Do we really need these TODOs inline in the code? Especially in generic code. Ian. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/