# HG changeset patch # User yamahata@xxxxxxxxxxxxx # Node ID 994038c91f81c7d905717506a152171731351acc # Parent 03033f8f5c058dd99010ec3ad900d9540e39afb2 fix gnttab_shared_gmfn() PATCHNAME: fix_gnttab_shared_gmfn Signed-off-by: Isaku Yamahata diff -r 03033f8f5c05 -r 994038c91f81 xen/include/asm-ia64/grant_table.h --- a/xen/include/asm-ia64/grant_table.h Tue Apr 4 19:16:23 2006 +0900 +++ b/xen/include/asm-ia64/grant_table.h Tue Apr 4 19:16:25 2006 +0900 @@ -17,12 +17,16 @@ /* Guest physical address of the grant table. */ #define IA64_GRANT_TABLE_PADDR (1UL << 40) -#define gnttab_shared_gmfn(d, t, i) \ - ( ((d) == dom0) ? \ - ((virt_to_maddr((t)->shared) >> PAGE_SHIFT) + (i)) : \ - (assign_domain_page((d), IA64_GRANT_TABLE_PADDR, \ - virt_to_maddr((t)->shared)), IA64_GRANT_TABLE_PADDR >> PAGE_SHIFT) \ - ) +#define gnttab_shared_maddr(d, t, i) \ + virt_to_maddr((char*)(t)->shared + ((i) << PAGE_SHIFT)) + +#define gnttab_shared_gmfn(d, t, i) \ + ({ ((d) == dom0) ? \ + (virt_to_maddr((t)->shared) >> PAGE_SHIFT) + (i): \ + assign_domain_page((d), \ + IA64_GRANT_TABLE_PADDR + ((i) << PAGE_SHIFT), \ + gnttab_shared_maddr(d, t, i)), \ + (IA64_GRANT_TABLE_PADDR >> PAGE_SHIFT) + (i);}) #define gnttab_log_dirty(d, f) ((void)0)