On Mon, Oct 22, 2012 at 02:25:43PM +0100, Stefano Stabellini wrote: > On Sat, 20 Oct 2012, Konrad Rzeszutek Wilk wrote: > > From: Mukesh Rathor <mukesh.rat...@oracle.com> > > > > For balloon changes we skip setting of local P2M as it's updated > > in Xen. For grant, the shared grant frame is the pfn and not mfn, > > hence its mapped via the same code path as HVM. > > > > Signed-off-by: Mukesh Rathor <mukesh.rat...@oracle.com> > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.w...@oracle.com> > > --- > > drivers/xen/balloon.c | 15 +++++++++------ > > drivers/xen/gntdev.c | 3 ++- > > drivers/xen/grant-table.c | 26 ++++++++++++++++++++++---- > > 3 files changed, 33 insertions(+), 11 deletions(-) > > > > diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c > > index 31ab82f..c825b63 100644 > > --- a/drivers/xen/balloon.c > > +++ b/drivers/xen/balloon.c > > @@ -361,7 +361,9 @@ static enum bp_state increase_reservation(unsigned long > > nr_pages) > > set_phys_to_machine(pfn, frame_list[i]); > > > > /* Link back into the page tables if not highmem. */ > > - if (xen_pv_domain() && !PageHighMem(page)) { > > + if (xen_pv_domain() && !PageHighMem(page) && > > + !xen_feature(XENFEAT_auto_translated_physmap)) {
This could be done as: if ((xen_pv_domain() && !PageHighMem(page) && !xen_feature(XENFEAT_auto_translated_physmap)) Just to make it more easier to read. > > + > > int ret; > > ret = HYPERVISOR_update_va_mapping( > > (unsigned long)__va(pfn << PAGE_SHIFT), > > @@ -418,12 +420,13 @@ static enum bp_state decrease_reservation(unsigned > > long nr_pages, gfp_t gfp) > > scrub_page(page); > > > > if (xen_pv_domain() && !PageHighMem(page)) { > > - ret = HYPERVISOR_update_va_mapping( > > - (unsigned long)__va(pfn << PAGE_SHIFT), > > - __pte_ma(0), 0); > > - BUG_ON(ret); > > + if (!xen_feature(XENFEAT_auto_translated_physmap)) { > > + ret = HYPERVISOR_update_va_mapping( > > + (unsigned long)__va(pfn << PAGE_SHIFT), > > + __pte_ma(0), 0); > > + BUG_ON(ret); > > + } > > } > > this change, unlike the one before, actually makes things different for > traditional pv domains in case PageHighMem(page). How? He is not altering the !PageHighMem check. Just adding a check before the hypercall to render it nop on PVH. -- 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/