Add necessary support to make MSHV_VTL work for arm64 architecture. * Add stub implementation for mshv_vtl_return_call_init() as it's not required for arm64 * Handle hugepage functions by config checks, as it's x86 specific * fpu/legacy.h header inclusion was required when x86 assembly code was present here, it got left when the code was moved to arch files. Remove it now (unrelated to arm64)
Signed-off-by: Roman Kisel <[email protected]> Signed-off-by: Naman Jain <[email protected]> --- arch/arm64/include/asm/mshyperv.h | 2 ++ drivers/hv/mshv_vtl_main.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm64/include/asm/mshyperv.h b/arch/arm64/include/asm/mshyperv.h index 9eb0e5999f29..6f668ec68b2f 100644 --- a/arch/arm64/include/asm/mshyperv.h +++ b/arch/arm64/include/asm/mshyperv.h @@ -82,6 +82,8 @@ static inline int hv_vtl_get_set_reg(struct hv_register_assoc *regs, bool set, b return 1; } +/* Stubbed for arm64 */ +static inline int mshv_vtl_return_call_init(void) { return 0; } #endif #include <asm-generic/mshyperv.h> diff --git a/drivers/hv/mshv_vtl_main.c b/drivers/hv/mshv_vtl_main.c index be498c9234fd..d5308956dfb6 100644 --- a/drivers/hv/mshv_vtl_main.c +++ b/drivers/hv/mshv_vtl_main.c @@ -23,8 +23,6 @@ #include <trace/events/ipi.h> #include <uapi/linux/mshv.h> #include <hyperv/hvhdk.h> - -#include "../../kernel/fpu/legacy.h" #include "mshv.h" #include "mshv_vtl.h" #include "hyperv_vmbus.h" @@ -1077,10 +1075,12 @@ static vm_fault_t mshv_vtl_low_huge_fault(struct vm_fault *vmf, unsigned int ord ret = vmf_insert_pfn_pmd(vmf, pfn, vmf->flags & FAULT_FLAG_WRITE); return ret; +#if defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) case PUD_ORDER: if (can_fault(vmf, PUD_SIZE, &pfn)) ret = vmf_insert_pfn_pud(vmf, pfn, vmf->flags & FAULT_FLAG_WRITE); return ret; +#endif default: return VM_FAULT_SIGBUS; -- 2.43.0

