On 23.04.2024 10:52, Sergiy Kibrik wrote: > --- a/xen/arch/x86/cpu/mcheck/vmce.c > +++ b/xen/arch/x86/cpu/mcheck/vmce.c > @@ -141,12 +141,14 @@ static int bank_mce_rdmsr(const struct vcpu *v, > uint32_t msr, uint64_t *val) > case X86_VENDOR_CENTAUR: > case X86_VENDOR_SHANGHAI: > case X86_VENDOR_INTEL: > - ret = vmce_intel_rdmsr(v, msr, val); > + ret = IS_ENABLED(CONFIG_INTEL) ? > + vmce_intel_rdmsr(v, msr, val) : -ENODEV; > break; > > case X86_VENDOR_AMD: > case X86_VENDOR_HYGON: > - ret = vmce_amd_rdmsr(v, msr, val); > + ret = IS_ENABLED(CONFIG_AMD) ? > + vmce_amd_rdmsr(v, msr, val) : -ENODEV; > break;
Why -ENODEV when ... > default: ... below here 0 is put into "ret"? And why not have the default case take care of unsupported/unrecognized vendors uniformly? Jan
