diff -X /home/yamahata/dontdiff -x '.hg/.*' -x 'export/.*' -x '*.porig' -rupNbBw ../foreign_p2m_unbundle/xen-unstable.hg/xen/arch/ia64/xen/dom0_ops.c ./xen-unstable.hg/xen/arch/ia64/xen/dom0_ops.c --- ../foreign_p2m_unbundle/xen-unstable.hg/xen/arch/ia64/xen/dom0_ops.c 2007-09-07 14:51:00.000000000 +0900 +++ ./xen-unstable.hg/xen/arch/ia64/xen/dom0_ops.c 2007-09-07 15:13:36.000000000 +0900 @@ -415,6 +415,15 @@ do_dom0vp_op(unsigned long cmd, case IA64_DOM0VP_add_io_space: ret = dom0vp_add_io_space(d, arg0, arg1, arg2); break; + case IA64_DOM0VP_expose_foreign_p2m: { + XEN_GUEST_HANDLE(char) hnd; + set_xen_guest_handle(hnd, (char*)arg2); + ret = dom0vp_expose_foreign_p2m(d, arg0, (domid_t)arg1, hnd, arg3); + break; + } + case IA64_DOM0VP_unexpose_foreign_p2m: + ret = dom0vp_unexpose_foreign_p2m(d, arg0, arg1); + break; default: ret = -1; printk("unknown dom0_vp_op 0x%lx\n", cmd); diff -X /home/yamahata/dontdiff -x '.hg/.*' -x 'export/.*' -x '*.porig' -rupNbBw ../foreign_p2m_unbundle/xen-unstable.hg/xen/arch/ia64/xen/mm.c ./xen-unstable.hg/xen/arch/ia64/xen/mm.c --- ../foreign_p2m_unbundle/xen-unstable.hg/xen/arch/ia64/xen/mm.c 2007-09-07 14:51:00.000000000 +0900 +++ ./xen-unstable.hg/xen/arch/ia64/xen/mm.c 2007-09-07 15:13:37.000000000 +0900 @@ -265,8 +265,6 @@ mm_teardown_pte(struct domain* d, volati } else { put_page(page); } - - foreign_p2m_destroy(d); } static int @@ -358,6 +356,8 @@ mm_teardown(struct domain* d) if (mm_teardown_pgd(d, pgd, cur_offset)) return -EAGAIN; } + + foreign_p2m_destroy(d); return 0; } @@ -1725,9 +1721,6 @@ dom0vp_expose_p2m(struct domain* d, } ret = expose_p2m(d, assign_start_gpfn, d, conv_start_gpfn, expose_num_pfn); -#ifdef CONFIG_XEN_IA64_DEFERRED_FREE - dfree_flush(¤t->arch.dfree); -#endif return ret; } @@ -2097,10 +2089,6 @@ dom0vp_expose_foreign_p2m(struct domain* rcu_unlock_domain(dest_dom); out: xfree(memmap); - -#ifdef CONFIG_XEN_IA64_DEFERRED_FREE - dfree_flush(¤t->arch.dfree); -#endif return ret; } @@ -2140,9 +2128,6 @@ dom0vp_unexpose_foreign_p2m(struct domai if (ret == 0) { foreign_p2m_unexpose(dest_dom, entry); foreign_p2m_free(&dest_dom->arch.foreign_p2m, entry); -#ifdef CONFIG_XEN_IA64_DEFERRED_FREE - dfree_flush(¤t->arch.dfree); -#endif } rcu_unlock_domain(dest_dom); return ret;