x86/hyperv: Initialize shared memory boundary in the Isolation VM.
Hyper-V exposes shared memory boundary via cpuid HYPERV_CPUID_ISOLATION_CONFIG and store it in the shared_gpa_boundary of ms_hyperv struct. This prepares to share memory with host for SNP guest. Reviewed-by: Michael Kelley <mikelley@microsoft.com> Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com> Link: https://lore.kernel.org/r/20211025122116.264793-3-ltykernel@gmail.com Signed-off-by: Wei Liu <wei.liu@kernel.org>
This commit is contained in:
parent
0cc4f6d9f0
commit
af788f355e
|
@ -313,6 +313,8 @@ static void __init ms_hyperv_init_platform(void)
|
|||
if (ms_hyperv.priv_high & HV_ISOLATION) {
|
||||
ms_hyperv.isolation_config_a = cpuid_eax(HYPERV_CPUID_ISOLATION_CONFIG);
|
||||
ms_hyperv.isolation_config_b = cpuid_ebx(HYPERV_CPUID_ISOLATION_CONFIG);
|
||||
ms_hyperv.shared_gpa_boundary =
|
||||
BIT_ULL(ms_hyperv.shared_gpa_boundary_bits);
|
||||
|
||||
pr_info("Hyper-V: Isolation Config: Group A 0x%x, Group B 0x%x\n",
|
||||
ms_hyperv.isolation_config_a, ms_hyperv.isolation_config_b);
|
||||
|
|
|
@ -35,7 +35,17 @@ struct ms_hyperv_info {
|
|||
u32 max_vp_index;
|
||||
u32 max_lp_index;
|
||||
u32 isolation_config_a;
|
||||
u32 isolation_config_b;
|
||||
union {
|
||||
u32 isolation_config_b;
|
||||
struct {
|
||||
u32 cvm_type : 4;
|
||||
u32 reserved1 : 1;
|
||||
u32 shared_gpa_boundary_active : 1;
|
||||
u32 shared_gpa_boundary_bits : 6;
|
||||
u32 reserved2 : 20;
|
||||
};
|
||||
};
|
||||
u64 shared_gpa_boundary;
|
||||
};
|
||||
extern struct ms_hyperv_info ms_hyperv;
|
||||
|
||||
|
|
Loading…
Reference in New Issue