Message ID | 20250414224713.1866095-7-romank@linux.microsoft.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | arm64: hyperv: Support Virtual Trust Level Boot | expand |
From: Roman Kisel <romank@linux.microsoft.com> Sent: Monday, April 14, 2025 3:47 PM > > The hyperv guest code might run in various Virtual Trust Levels. > > Report the level when the kernel boots in the non-default (0) > one. > > Signed-off-by: Roman Kisel <romank@linux.microsoft.com> > --- > arch/arm64/hyperv/mshyperv.c | 2 ++ > arch/x86/hyperv/hv_vtl.c | 7 ++++++- > 2 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c > index 43f422a7ef34..4fdc26ade1d7 100644 > --- a/arch/arm64/hyperv/mshyperv.c > +++ b/arch/arm64/hyperv/mshyperv.c > @@ -118,6 +118,8 @@ static int __init hyperv_init(void) > if (ms_hyperv.priv_high & HV_ACCESS_PARTITION_ID) > hv_get_partition_id(); > ms_hyperv.vtl = get_vtl(); > + if (ms_hyperv.vtl > 0) /* non default VTL */ > + pr_info("Linux runs in Hyper-V Virtual Trust Level %d\n", ms_hyperv.vtl); > > ms_hyperv_late_init(); > > diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c > index 582fe820e29c..038c896fdd60 100644 > --- a/arch/x86/hyperv/hv_vtl.c > +++ b/arch/x86/hyperv/hv_vtl.c > @@ -55,7 +55,12 @@ static void __noreturn hv_vtl_restart(char __maybe_unused *cmd) > > void __init hv_vtl_init_platform(void) > { > - pr_info("Linux runs in Hyper-V Virtual Trust Level\n"); > + /* > + * This function is a no-op if the VTL mode is not enabled. > + * If it is, this function runs if and only the kernel boots in > + * VTL2 which the x86 hv initialization path makes sure of. > + */ > + pr_info("Linux runs in Hyper-V Virtual Trust Level %d\n", ms_hyperv.vtl); > > x86_platform.realmode_reserve = x86_init_noop; > x86_platform.realmode_init = x86_init_noop; > -- > 2.43.0 > Reviewed-by: Michael Kelley <mhklinux@outlook.com>
diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c index 43f422a7ef34..4fdc26ade1d7 100644 --- a/arch/arm64/hyperv/mshyperv.c +++ b/arch/arm64/hyperv/mshyperv.c @@ -118,6 +118,8 @@ static int __init hyperv_init(void) if (ms_hyperv.priv_high & HV_ACCESS_PARTITION_ID) hv_get_partition_id(); ms_hyperv.vtl = get_vtl(); + if (ms_hyperv.vtl > 0) /* non default VTL */ + pr_info("Linux runs in Hyper-V Virtual Trust Level %d\n", ms_hyperv.vtl); ms_hyperv_late_init(); diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c index 582fe820e29c..038c896fdd60 100644 --- a/arch/x86/hyperv/hv_vtl.c +++ b/arch/x86/hyperv/hv_vtl.c @@ -55,7 +55,12 @@ static void __noreturn hv_vtl_restart(char __maybe_unused *cmd) void __init hv_vtl_init_platform(void) { - pr_info("Linux runs in Hyper-V Virtual Trust Level\n"); + /* + * This function is a no-op if the VTL mode is not enabled. + * If it is, this function runs if and only the kernel boots in + * VTL2 which the x86 hv initialization path makes sure of. + */ + pr_info("Linux runs in Hyper-V Virtual Trust Level %d\n", ms_hyperv.vtl); x86_platform.realmode_reserve = x86_init_noop; x86_platform.realmode_init = x86_init_noop;
The hyperv guest code might run in various Virtual Trust Levels. Report the level when the kernel boots in the non-default (0) one. Signed-off-by: Roman Kisel <romank@linux.microsoft.com> --- arch/arm64/hyperv/mshyperv.c | 2 ++ arch/x86/hyperv/hv_vtl.c | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-)