From: Naman Jain <[email protected]> Sent: Monday, March 16, 2026 
5:13 AM
> 
> The kernel currently sets the VSM configuration register, thereby
> imposing certain VSM configuration on the userspace (OpenVMM).
> 
> The userspace (OpenVMM) has the capability to configure this register,
> and it is already doing it using the generic hypercall interface.
> The configuration can vary based on the use case or architectures, so
> let userspace take care of configuring it and remove this logic in the
> kernel driver.
> 
> Signed-off-by: Roman Kisel <[email protected]>
> Signed-off-by: Naman Jain <[email protected]>
> ---
>  drivers/hv/mshv_vtl_main.c | 29 -----------------------------
>  1 file changed, 29 deletions(-)
> 
> diff --git a/drivers/hv/mshv_vtl_main.c b/drivers/hv/mshv_vtl_main.c
> index c79d24317b8e..4c9ae65ad3e8 100644
> --- a/drivers/hv/mshv_vtl_main.c
> +++ b/drivers/hv/mshv_vtl_main.c
> @@ -222,30 +222,6 @@ static int mshv_vtl_get_vsm_regs(void)
>       return ret;
>  }
> 
> -static int mshv_vtl_configure_vsm_partition(struct device *dev)
> -{
> -     union hv_register_vsm_partition_config config;
> -     struct hv_register_assoc reg_assoc;
> -
> -     config.as_uint64 = 0;
> -     config.default_vtl_protection_mask = HV_MAP_GPA_PERMISSIONS_MASK;
> -     config.enable_vtl_protection = 1;
> -     config.zero_memory_on_reset = 1;
> -     config.intercept_vp_startup = 1;
> -     config.intercept_cpuid_unimplemented = 1;
> -
> -     if (mshv_vsm_capabilities.intercept_page_available) {
> -             dev_dbg(dev, "using intercept page\n");
> -             config.intercept_page = 1;
> -     }
> -
> -     reg_assoc.name = HV_REGISTER_VSM_PARTITION_CONFIG;
> -     reg_assoc.value.reg64 = config.as_uint64;
> -
> -     return hv_call_set_vp_registers(HV_VP_INDEX_SELF, HV_PARTITION_ID_SELF,
> -                                    1, input_vtl_zero, &reg_assoc);
> -}
> -
>  static void mshv_vtl_vmbus_isr(void)
>  {
>       struct hv_per_cpu_context *per_cpu;
> @@ -1168,11 +1144,6 @@ static int __init mshv_vtl_init(void)
>               ret = -ENODEV;
>               goto free_dev;
>       }
> -     if (mshv_vtl_configure_vsm_partition(dev)) {
> -             dev_emerg(dev, "VSM configuration failed !!\n");
> -             ret = -ENODEV;
> -             goto free_dev;
> -     }
> 
>       mshv_vtl_return_call_init(mshv_vsm_page_offsets.vtl_return_offset);
>       ret = hv_vtl_setup_synic();
> --
> 2.43.0
> 

Reviewed-by: Michael Kelley <[email protected]>


Reply via email to