[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/viridian: EOI MSR should always happen in affected vCPU context
On 01.04.2021 12:22, Roger Pau Monne wrote: > The HV_X64_MSR_EOI wrmsr should always happen with the target vCPU > as current, as there's no support for EOI'ing interrupts on a remote > vCPU. > > While there also turn the unconditional assert at the top of the > function into an error on non-debug builds. > > No functional change intended. > > Requested-by: Jan Beulich <jbeulich@xxxxxxxx> > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> > --- a/xen/arch/x86/hvm/viridian/synic.c > +++ b/xen/arch/x86/hvm/viridian/synic.c > @@ -79,11 +79,20 @@ int viridian_synic_wrmsr(struct vcpu *v, uint32_t idx, > uint64_t val) > struct viridian_vcpu *vv = v->arch.hvm.viridian; > struct domain *d = v->domain; > > - ASSERT(v == current || !v->is_running); > + if ( v != current && v->is_running ) > + { > + ASSERT_UNREACHABLE(); > + return X86EMUL_EXCEPTION; > + } > > switch ( idx ) > { > case HV_X64_MSR_EOI: > + if ( v != current ) > + { > + ASSERT_UNREACHABLE(); > + return X86EMUL_EXCEPTION; > + } > vlapic_EOI_set(vcpu_vlapic(v)); I suppose this function then also wants to lose its parameter. But I'll reply to patch 1 of the other series again as well. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |