[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 3/3] x86/viridian: drop viridian_stimer_config_msr
> -----Original Message----- > From: Wei Liu <wei.liu.xen@xxxxxxxxx> On Behalf Of Wei Liu > Sent: 22 December 2019 23:21 > To: Xen Development List <xen-devel@xxxxxxxxxxxxxxxxxxxx> > Cc: Michael Kelley <mikelley@xxxxxxxxxxxxx>; Durrant, Paul > <pdurrant@xxxxxxxxxx>; Wei Liu <liuwe@xxxxxxxxxxxxx>; Paul Durrant > <paul@xxxxxxx>; Jan Beulich <jbeulich@xxxxxxxx>; Andrew Cooper > <andrew.cooper3@xxxxxxxxxx>; Wei Liu <wl@xxxxxxx>; Roger Pau Monné > <roger.pau@xxxxxxxxxx> > Subject: [PATCH 3/3] x86/viridian: drop viridian_stimer_config_msr > > Use hv_stimer_config instead. No functional change. > > Signed-off-by: Wei Liu <liuwe@xxxxxxxxxxxxx> Reviewed-by: Paul Durrant <paul@xxxxxxx> > --- > xen/arch/x86/hvm/viridian/time.c | 28 ++++++++++++++-------------- > xen/include/asm-x86/hvm/viridian.h | 19 +------------------ > 2 files changed, 15 insertions(+), 32 deletions(-) > > diff --git a/xen/arch/x86/hvm/viridian/time.c > b/xen/arch/x86/hvm/viridian/time.c > index 0f1cd9e208..3de5665c02 100644 > --- a/xen/arch/x86/hvm/viridian/time.c > +++ b/xen/arch/x86/hvm/viridian/time.c > @@ -220,7 +220,7 @@ static void poll_stimer(struct vcpu *v, unsigned int > stimerx) > * is disabled make sure the pending bit is cleared to avoid re- > * polling. > */ > - if ( !vs->config.enabled ) > + if ( !vs->config.enable ) > { > clear_bit(stimerx, &vv->stimer_pending); > return; > @@ -239,7 +239,7 @@ static void poll_stimer(struct vcpu *v, unsigned int > stimerx) > if ( vs->config.periodic ) > start_stimer(vs); > else > - vs->config.enabled = 0; > + vs->config.enable = 0; > } > > void viridian_time_poll_timers(struct vcpu *v) > @@ -285,7 +285,7 @@ static void time_vcpu_thaw(struct vcpu *v) > { > struct viridian_stimer *vs = &vv->stimer[i]; > > - if ( vs->config.enabled ) > + if ( vs->config.enable ) > start_stimer(vs); > } > } > @@ -355,12 +355,12 @@ int viridian_time_wrmsr(struct vcpu *v, uint32_t > idx, uint64_t val) > > stop_stimer(vs); > > - vs->config.raw = val; > + vs->config.as_uint64 = val; > > if ( !vs->config.sintx ) > - vs->config.enabled = 0; > + vs->config.enable = 0; > > - if ( vs->config.enabled ) > + if ( vs->config.enable ) > start_stimer(vs); > > break; > @@ -383,11 +383,11 @@ int viridian_time_wrmsr(struct vcpu *v, uint32_t > idx, uint64_t val) > vs->count = val; > > if ( !vs->count ) > - vs->config.enabled = 0; > + vs->config.enable = 0; > else if ( vs->config.auto_enable ) > - vs->config.enabled = 1; > + vs->config.enable = 1; > > - if ( vs->config.enabled ) > + if ( vs->config.enable ) > start_stimer(vs); > > break; > @@ -454,7 +454,7 @@ int viridian_time_rdmsr(const struct vcpu *v, uint32_t > idx, uint64_t *val) > unsigned int stimerx = (idx - HV_X64_MSR_STIMER0_CONFIG) / 2; > const struct viridian_stimer *vs = > &array_access_nospec(vv->stimer, stimerx); > - union viridian_stimer_config_msr config = vs->config; > + union hv_stimer_config config = vs->config; > > if ( !(viridian_feature_mask(d) & HVMPV_stimer) ) > return X86EMUL_EXCEPTION; > @@ -464,9 +464,9 @@ int viridian_time_rdmsr(const struct vcpu *v, uint32_t > idx, uint64_t *val) > * the enabled flag is clear. > */ > if ( !config.periodic && test_bit(stimerx, &vv->stimer_pending) ) > - config.enabled = 0; > + config.enable = 0; > > - *val = config.raw; > + *val = config.as_uint64; > break; > } > > @@ -549,7 +549,7 @@ void viridian_time_save_vcpu_ctxt( > { > const struct viridian_stimer *vs = &vv->stimer[i]; > > - ctxt->stimer_config_msr[i] = vs->config.raw; > + ctxt->stimer_config_msr[i] = vs->config.as_uint64; > ctxt->stimer_count_msr[i] = vs->count; > } > } > @@ -564,7 +564,7 @@ void viridian_time_load_vcpu_ctxt( > { > struct viridian_stimer *vs = &vv->stimer[i]; > > - vs->config.raw = ctxt->stimer_config_msr[i]; > + vs->config.as_uint64 = ctxt->stimer_config_msr[i]; > vs->count = ctxt->stimer_count_msr[i]; > } > } > diff --git a/xen/include/asm-x86/hvm/viridian.h b/xen/include/asm- > x86/hvm/viridian.h > index d694d83521..d9138562e6 100644 > --- a/xen/include/asm-x86/hvm/viridian.h > +++ b/xen/include/asm-x86/hvm/viridian.h > @@ -28,27 +28,10 @@ struct viridian_page > void *ptr; > }; > > -union viridian_stimer_config_msr > -{ > - uint64_t raw; > - struct > - { > - uint64_t enabled:1; > - uint64_t periodic:1; > - uint64_t lazy:1; > - uint64_t auto_enable:1; > - uint64_t vector:8; > - uint64_t direct_mode:1; > - uint64_t reserved_zero1:3; > - uint64_t sintx:4; > - uint64_t reserved_zero2:44; > - }; > -}; > - > struct viridian_stimer { > struct vcpu *v; > struct timer timer; > - union viridian_stimer_config_msr config; > + union hv_stimer_config config; > uint64_t count; > uint64_t expiration; > bool started; > -- > 2.20.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |