From: Catalin Marinas <catalin.marinas@xxxxxxx> Sent: Wednesday, August 4, 2021 9:26 AM > > On Wed, Aug 04, 2021 at 08:52:34AM -0700, Michael Kelley wrote: > > This series enables Linux guests running on Hyper-V on ARM64 > > hardware. New ARM64-specific code in arch/arm64/hyperv initializes > > Hyper-V and its hypercall mechanism. Existing architecture > > independent drivers for Hyper-V's VMbus and synthetic devices just > > work when built for ARM64. Hyper-V code is built and included in > > the image and modules only if CONFIG_HYPERV is enabled. > [...] > > Hyper-V on ARM64 runs with a 4 Kbyte page size, but allows guests > > with 4K/16K/64K page size. Linux guests with this patch series > > work with all three supported ARM64 page sizes. > > > > The Hyper-V vPCI driver at drivers/pci/host/pci-hyperv.c has > > x86/x64-specific code and is not being built for ARM64. Enabling > > Hyper-V vPCI devices on ARM64 is in progress via a separate set > > of patches. > > > > This patch set is based on the linux-next20210720 code tree. > > Is it possible to rebase this on top of -rc3? Are there any > dependencies or do you plan to upstream this via a different tree? > There are dependencies on changes in the hyperv-next tree (https://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git/) which is why you are getting the build errors. The changes common-ized some code between the x86 side and previous versions of this patch set (and fixed the #include nmi.h problem). So the code would most naturally go upstream through that tree. Michael > It applies cleanly but it doesn't build for me: > > In file included from arch/arm64/include/asm/mshyperv.h:52, > from arch/arm64/hyperv/hv_core.c:19: > include/asm-generic/mshyperv.h: In function 'hv_do_rep_hypercall': > include/asm-generic/mshyperv.h:86:3: error: implicit declaration of function 'touch_nmi_watchdog' [-Werror=implicit- > function-declaration] > 86 | touch_nmi_watchdog(); > | ^~~~~~~~~~~~~~~~~~ > > A quick fix for the above was to include nmi.h in mshyperv.h. > > However, the below I can't fix since there's no trace of > hv_common_init() on top of 5.14-rc3: > > arch/arm64/hyperv/mshyperv.c: In function 'hyperv_init': > arch/arm64/hyperv/mshyperv.c:66:8: error: implicit declaration of function 'hv_common_init' [-Werror=implicit-function- > declaration] > 66 | ret = hv_common_init(); > | ^~~~~~~~~~~~~~ > arch/arm64/hyperv/mshyperv.c:71:5: error: 'hv_common_cpu_init' undeclared (first use in this function) > 71 | hv_common_cpu_init, hv_common_cpu_die); > | ^~~~~~~~~~~~~~~~~~ > arch/arm64/hyperv/mshyperv.c:71:5: note: each undeclared identifier is reported only once for each function it appears in > arch/arm64/hyperv/mshyperv.c:71:25: error: 'hv_common_cpu_die' undeclared (first use in this function) > 71 | hv_common_cpu_init, hv_common_cpu_die); > | ^~~~~~~~~~~~~~~~~ > arch/arm64/hyperv/mshyperv.c:73:3: error: implicit declaration of function 'hv_common_free' [-Werror=implicit-function- > declaration] > 73 | hv_common_free(); > | ^~~~~~~~~~~~~~ > > -- > Catalin