Commit 106dee08 authored by Boqun Feng's avatar Boqun Feng Committed by Wei Liu

hv: hyperv.h: Introduce some hvpfn helper functions

When a guest communicate with the hypervisor, it must use HV_HYP_PAGE to
calculate PFN, so introduce a few hvpfn helper functions as the
counterpart of the page helper functions. This is the preparation for
supporting guest whose PAGE_SIZE is not 4k.
Signed-off-by: default avatarBoqun Feng <boqun.feng@gmail.com>
Reviewed-by: default avatarMichael Kelley <mikelley@microsoft.com>
Link: https://lore.kernel.org/r/20200916034817.30282-7-boqun.feng@gmail.comSigned-off-by: default avatarWei Liu <wei.liu@kernel.org>
parent bca6b91d
...@@ -1691,4 +1691,9 @@ static inline unsigned long virt_to_hvpfn(void *addr) ...@@ -1691,4 +1691,9 @@ static inline unsigned long virt_to_hvpfn(void *addr)
return paddr >> HV_HYP_PAGE_SHIFT; return paddr >> HV_HYP_PAGE_SHIFT;
} }
#define NR_HV_HYP_PAGES_IN_PAGE (PAGE_SIZE / HV_HYP_PAGE_SIZE)
#define offset_in_hvpage(ptr) ((unsigned long)(ptr) & ~HV_HYP_PAGE_MASK)
#define HVPFN_UP(x) (((x) + HV_HYP_PAGE_SIZE-1) >> HV_HYP_PAGE_SHIFT)
#define page_to_hvpfn(page) (page_to_pfn(page) * NR_HV_HYP_PAGES_IN_PAGE)
#endif /* _HYPERV_H */ #endif /* _HYPERV_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment