[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [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> --- 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 |