Skip to content

Commit 8cac517

Browse files
Stanislav Kinsburskiiliuw
authored andcommitted
x86/mshyperv: Add support for extended Hyper-V features
Extend the "ms_hyperv_info" structure to include a new field, "ext_features", for capturing extended Hyper-V features. Update the "ms_hyperv_init_platform" function to retrieve these features using the cpuid instruction and include them in the informational output. Signed-off-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com> Signed-off-by: Nuno Das Neves <nunodasneves@linux.microsoft.com> Reviewed-by: Easwar Hariharan <eahariha@linux.microsoft.com> Reviewed-by: Roman Kisel <romank@linux.microsoft.com> Reviewed-by: Tianyu Lan <tiala@microsoft.com> Reviewed-by: Michael Kelley <mhklinux@outlook.com> Link: https://lore.kernel.org/r/1741980536-3865-3-git-send-email-nunodasneves@linux.microsoft.com Signed-off-by: Wei Liu <wei.liu@kernel.org> Message-ID: <1741980536-3865-3-git-send-email-nunodasneves@linux.microsoft.com>
1 parent 3817854 commit 8cac517

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

arch/x86/kernel/cpu/mshyperv.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -434,13 +434,15 @@ static void __init ms_hyperv_init_platform(void)
434434
*/
435435
ms_hyperv.features = cpuid_eax(HYPERV_CPUID_FEATURES);
436436
ms_hyperv.priv_high = cpuid_ebx(HYPERV_CPUID_FEATURES);
437+
ms_hyperv.ext_features = cpuid_ecx(HYPERV_CPUID_FEATURES);
437438
ms_hyperv.misc_features = cpuid_edx(HYPERV_CPUID_FEATURES);
438439
ms_hyperv.hints = cpuid_eax(HYPERV_CPUID_ENLIGHTMENT_INFO);
439440

440441
hv_max_functions_eax = cpuid_eax(HYPERV_CPUID_VENDOR_AND_MAX_FUNCTIONS);
441442

442-
pr_info("Hyper-V: privilege flags low 0x%x, high 0x%x, hints 0x%x, misc 0x%x\n",
443-
ms_hyperv.features, ms_hyperv.priv_high, ms_hyperv.hints,
443+
pr_info("Hyper-V: privilege flags low %#x, high %#x, ext %#x, hints %#x, misc %#x\n",
444+
ms_hyperv.features, ms_hyperv.priv_high,
445+
ms_hyperv.ext_features, ms_hyperv.hints,
444446
ms_hyperv.misc_features);
445447

446448
ms_hyperv.max_vp_index = cpuid_eax(HYPERV_CPUID_IMPLEMENT_LIMITS);

include/asm-generic/mshyperv.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ enum hv_partition_type {
3636
struct ms_hyperv_info {
3737
u32 features;
3838
u32 priv_high;
39+
u32 ext_features;
3940
u32 misc_features;
4041
u32 hints;
4142
u32 nested_features;

0 commit comments

Comments
 (0)