From: "Anirudh Rayabharam (Microsoft)" <[email protected]>
On x86, the HYPERVISOR_CALLBACK_VECTOR is used to receive synthetic interrupts (SINTs) from the hypervisor for doorbells and intercepts. There is no such vector reserved for arm64. On arm64, the INTID for SINTs should be in the SGI or PPI range. The hypervisor exposes a virtual device in the ACPI that reserves a PPI for this use. Introduce a platform_driver that binds to this ACPI device and obtains the interrupt vector that can be used for SINTs. Changes in v2: Addressed review comments: - Moved more stuff into mshv_synic.c - Code simplifications - Removed unnecessary debug prints v1: https://lore.kernel.org/linux-hyperv/[email protected]/ Anirudh Rayabharam (Microsoft) (2): mshv: refactor synic init and cleanup mshv: add arm64 support for doorbell & intercept SINTs drivers/hv/mshv_root.h | 5 +- drivers/hv/mshv_root_main.c | 59 ++------- drivers/hv/mshv_synic.c | 232 ++++++++++++++++++++++++++++++++++-- 3 files changed, 230 insertions(+), 66 deletions(-) -- 2.34.1
