On Wed, 2018-01-31 at 11:53 -0800, Jim Mattson wrote:
> On Wed, Jan 31, 2018 at 11:37 AM, KarimAllah Ahmed wrote:
>
> > +
> > + if (to_vmx(vcpu)->save_spec_ctrl_on_exit) {
> > + nested_vmx_disable_intercept_for_msr(
> > + msr_bitmap_l1, msr_bitmap_l0,
> > + MSR_IA32_SPEC_CTRL,
> > + MSR_TYPE_R | MSR_TYPE_W);
> > + }
> > +
>
> As this is written, L2 will never get direct access to this MSR until
> after L1 writes it. What if L1 never writes it? The condition should
> really be something that captures, "if L0 is willing to yield this MSR
> to the guest..."I'm still kind of lost here, but don't forget the requirement that the MSR must *not* be passed through for direct access by L1 or L2 guests, unless that ->save_spec_ctrl_on_exit flag is set. Because that's what makes us set it back to zero on vmexit. So the above condition doesn't look *so* wrong to me. Perhaps the issue is that we're missing a way for L2 to actually cause that flag to get set?
smime.p7s
Description: S/MIME cryptographic signature

