@@ -1960,7 +1960,7 @@ gnttab_setup_table(
op.status = GNTST_okay;
for ( i = 0; i < op.nr_frames; i++ )
{
- xen_pfn_t gmfn = gnttab_shared_gmfn(d, gt, i);
+ xen_pfn_t gmfn = gfn_x(gnttab_shared_gfn(d, gt, i));
/* Grant tables cannot be shared */
BUG_ON(SHARED_M2P(gmfn));
@@ -3174,7 +3174,7 @@ gnttab_get_status_frames(XEN_GUEST_HANDLE_PARAM(gnttab_get_status_frames_t) uop,
for ( i = 0; i < op.nr_frames; i++ )
{
- gmfn = gnttab_status_gmfn(d, gt, i);
+ gmfn = gfn_x(gnttab_status_gfn(d, gt, i));
if ( copy_to_guest_offset(op.frame_list, i, &gmfn, 1) )
op.status = GNTST_bad_virt_addr;
}
@@ -65,15 +65,15 @@ void gnttab_mark_dirty(struct domain *d, mfn_t mfn);
} while ( 0 )
#define gnttab_get_frame_gfn(gt, st, idx) ({ \
- _gfn((st) ? gnttab_status_gmfn(NULL, gt, idx) \
- : gnttab_shared_gmfn(NULL, gt, idx)); \
+ (st) ? gnttab_status_gfn(NULL, gt, idx) \
+ : gnttab_shared_gfn(NULL, gt, idx); \
})
-#define gnttab_shared_gmfn(d, t, i) \
- gfn_x(((i) >= nr_grant_frames(t)) ? INVALID_GFN : (t)->arch.shared_gfn[i])
+#define gnttab_shared_gfn(d, t, i) \
+ (((i) >= nr_grant_frames(t)) ? INVALID_GFN : (t)->arch.shared_gfn[i])
-#define gnttab_status_gmfn(d, t, i) \
- gfn_x(((i) >= nr_status_frames(t)) ? INVALID_GFN : (t)->arch.status_gfn[i])
+#define gnttab_status_gfn(d, t, i) \
+ (((i) >= nr_status_frames(t)) ? INVALID_GFN : (t)->arch.status_gfn[i])
#define gnttab_need_iommu_mapping(d) \
(is_domain_direct_mapped(d) && need_iommu_pt_sync(d))
@@ -39,24 +39,19 @@ static inline int replace_grant_host_mapping(uint64_t addr, mfn_t frame,
#define gnttab_destroy_arch(gt) do {} while ( 0 )
#define gnttab_set_frame_gfn(gt, st, idx, gfn) do {} while ( 0 )
#define gnttab_get_frame_gfn(gt, st, idx) ({ \
- unsigned long mfn_ = (st) ? gnttab_status_mfn(gt, idx) \
- : gnttab_shared_mfn(gt, idx); \
- unsigned long gpfn_ = get_gpfn_from_mfn(mfn_); \
+ mfn_t mfn_ = (st) ? gnttab_status_mfn(gt, idx) \
+ : gnttab_shared_mfn(gt, idx); \
+ unsigned long gpfn_ = get_gpfn_from_mfn(mfn_x(mfn_)); \
VALID_M2P(gpfn_) ? _gfn(gpfn_) : INVALID_GFN; \
})
-#define gnttab_shared_mfn(t, i) \
- ((virt_to_maddr((t)->shared_raw[i]) >> PAGE_SHIFT))
+#define gnttab_shared_mfn(t, i) _mfn(__virt_to_mfn((t)->shared_raw[i]))
-#define gnttab_shared_gmfn(d, t, i) \
- (mfn_to_gmfn(d, gnttab_shared_mfn(t, i)))
+#define gnttab_shared_gfn(d, t, i) mfn_to_gfn(d, gnttab_shared_mfn(t, i))
+#define gnttab_status_mfn(t, i) _mfn(__virt_to_mfn((t)->status[i]))
-#define gnttab_status_mfn(t, i) \
- ((virt_to_maddr((t)->status[i]) >> PAGE_SHIFT))
-
-#define gnttab_status_gmfn(d, t, i) \
- (mfn_to_gmfn(d, gnttab_status_mfn(t, i)))
+#define gnttab_status_gfn(d, t, i) mfn_to_gfn(d, gnttab_status_mfn(t, i))
#define gnttab_mark_dirty(d, f) paging_mark_dirty(d, f)