In a domU, I used the folloing code to grant a page to another domU.
share_mem = (share_mem_desp *) __get_free_page(GFP_KERNEL);
share_mem->gref = gnttab_grant_foreign_access(domid_remote, virt_to_mfn(share_mem), 0);
In another domU, I used the folloing code to get the shared page.
share_vmarea = alloc_vm_area(PAGE_SIZE);
gnttab_set_map_op( &map_op, (unsigned long)share_vmarea->addr, GNTMAP_host_map, gref, domid_remote );
HYPERVISOR_grant_table_op( GNTTABOP_map_grant_ref, &map_op, 1 );
While using the exactly same code to get the shared page in dom0, it woks all well. But it cannot work in domU.
I use Xen 4.1.1 and fedora 14 ( linux 3.1.0 both for dom0 and domU ).
Can anyone help me?