[PATCH v6 2/6] arm64: hyperv: Detect Hyper-V via RSI host call in CCA Realms

Catalin Marinas catalin.marinas at arm.com
Mon Nov 2 04:12:24 PST 2026


On Fri, Oct 30, 2026 at 05:14:08PM -0700, Kameron Carr wrote:
> When booting without ACPI, hyperv_detect_via_smccc() detects Hyper-V by
> querying the SMCCC vendor hypervisor UID. In an Arm CCA Realm the SMCCC
> call is handled by the RMM rather than by the hypervisor, so the
> query never reaches Hyper-V and detection fails.
> 
> When running in a Realm, forward ARM_SMCCC_VENDOR_HYP_CALL_UID_FUNC_ID
> to the host with RSI_HOST_CALL instead, which is how Hyper-V hypercalls
> are issued from a Realm.
> 
> This is done in the Hyper-V code rather than in the generic
> arm_smccc_hypervisor_has_uuid() because the other users expect different
> behavior.
> 
> hyperv_init() is an early_initcall and runs before the secondary CPUs
> are brought up, so a single __initdata host call structure is used
> without locking.
> 
> ACPI-based detection and non-Realm guests are unaffected.
> 
> Signed-off-by: Kameron Carr <kameroncarr at linux.microsoft.com>

This works for me, thanks. I replied to Dexuan clarifying my objection
to v5 do the UUID check generically.

-- 
Catalin



More information about the linux-arm-kernel mailing list