[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 2/2] Xen: Fix VMCS setting for x2APIC mode guest while enabling APICV
>>> On 28.01.13 at 05:13, "Li, Jiongxi" <jiongxi.li@xxxxxxxxx> wrote: > @@ -673,6 +674,36 @@ void vmx_disable_intercept_for_msr(struct vcpu *v, u32 > msr, int type) > } > } > > +void vmx_enable_intercept_for_msr(struct vcpu *v, u32 msr, int type) > +{ > + unsigned long *msr_bitmap = v->arch.hvm_vmx.msr_bitmap; > + > + /* VMX MSR bitmap supported? */ > + if ( msr_bitmap == NULL ) > + return; > + > + /* > + * See Intel PRM Vol. 3, 20.6.9 (MSR-Bitmap Address). Early manuals > + * have the write-low and read-high bitmap offsets the wrong way round. > + * We can control MSRs 0x00000000-0x00001fff and 0xc0000000-0xc0001fff. > + */ > + if ( msr <= 0x1fff ) > + { > + if (type & MSR_TYPE_R) > + __set_bit(msr, msr_bitmap + 0x000/BYTES_PER_LONG); /* read-low */ > + if (type & MSR_TYPE_W) > + __set_bit(msr, msr_bitmap + 0x800/BYTES_PER_LONG); /* write-low > */ > + } > + else if ( (msr >= 0xc0000000) && (msr <= 0xc0001fff) ) > + { > + msr &= 0x1fff; > + if (type & MSR_TYPE_R) > + __set_bit(msr, msr_bitmap + 0x400/BYTES_PER_LONG); /* read-high > */ > + if (type & MSR_TYPE_W) > + __set_bit(msr, msr_bitmap + 0xc00/BYTES_PER_LONG); /* write-high > */ > + } I'm afraid that now that this and its "disable" counterpart aren't being used exclusively from construct_vmcs() anymore, you can't use __set_bit()/__clear_bit() here/there. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |