On Tue, Feb 20, 2024 at 06:55:33AM -0800, Nuno Das Neves wrote: > The HV_REGISTER_ are used as arguments to hv_set/get_register(), which > delegate to arch-specific mechanisms for getting/setting synthetic > Hyper-V MSRs. > > On arm64, HV_REGISTER_ defines are synthetic VP registers accessed via > the get/set vp registers hypercalls. The naming matches the TLFS > document, although these register names are not specific to arm64. > > However, on x86 the prefix HV_REGISTER_ indicates Hyper-V MSRs accessed > via rdmsrl()/wrmsrl(). This is not consistent with the TLFS doc, where > HV_REGISTER_ is *only* used for used for VP register names used by > the get/set register hypercalls. > > To fix this inconsistency and prevent future confusion, change the > arch-generic aliases used by callers of hv_set/get_register() to have > the prefix HV_MSR_ instead of HV_REGISTER_. > > Use the prefix HV_X64_MSR_ for the x86-only Hyper-V MSRs. On x86, the > generic HV_MSR_'s point to the corresponding HV_X64_MSR_. > > Move the arm64 HV_REGISTER_* defines to the asm-generic hyperv-tlfs.h, > since these are not specific to arm64. On arm64, the generic HV_MSR_'s > point to the corresponding HV_REGISTER_. > > While at it, rename hv_get/set_registers() and related functions to > hv_get/set_msr(), hv_get/set_nested_msr(), etc. These are only used for > Hyper-V MSRs and this naming makes that clear. > > Signed-off-by: Nuno Das Neves <nunodasneves@xxxxxxxxxxxxxxxxxxx> > Reviewed-by: Wei Liu <wei.liu@xxxxxxxxxx> > Reviewed-by: Michael Kelley <mhklinux@xxxxxxxxxxx> Applied to hyperv-next. Thanks.