|
[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 |