|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 1/4] x86: stop handling MSR_IA32_BNDCFGS save/restore in implementation code
>>> On 14.03.19 at 14:01, <paul.durrant@xxxxxxxxxx> wrote:
> @@ -1215,10 +1196,15 @@ static bool vmx_set_guest_bndcfgs(struct vcpu *v, u64
> val)
> return true;
> }
>
> -static bool vmx_get_guest_bndcfgs(struct vcpu *v, u64 *val)
> +static bool vmx_get_guest_bndcfgs(const struct vcpu *cv, u64 *val)
> {
> + struct vcpu *v;
> +
> ASSERT(cpu_has_mpx && cpu_has_vmx_mpx);
>
> + /* Get a non-const pointer for vmx_vmcs_enter() */
> + v = cv->domain->vcpu[cv->vcpu_id];
Any chance this could be made the initializer of the variable?
> --- a/xen/arch/x86/msr.c
> +++ b/xen/arch/x86/msr.c
> @@ -160,6 +160,12 @@ int guest_rdmsr(const struct vcpu *v, uint32_t msr,
> uint64_t *val)
> ret = guest_rdmsr_x2apic(v, msr, val);
> break;
>
> + case MSR_IA32_BNDCFGS:
> + if ( !cp->feat.mpx || !hvm_get_guest_bndcfgs(v, val) )
> + goto gp_fault;
Didn't we settle on ASSERT(is_hvm_*)?
> @@ -323,6 +329,12 @@ int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t
> val)
> ret = guest_wrmsr_x2apic(v, msr, val);
> break;
>
> + case MSR_IA32_BNDCFGS:
> + if ( !cp->feat.mpx || !hvm_set_guest_bndcfgs(v, val) )
> + goto gp_fault;
Same here? Or did Andrew tell you otherwise?
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |