Re: [PATCH 3/8] KVM: Activate fpu on clts

Avi Kivity
2010-02-04T17:56:39Z

On 02/04/2010 03:11 PM, Gleb Natapov wrote:
> On Thu, Feb 04, 2010 at 03:05:17PM +0200, Avi Kivity wrote:
>
>> On 02/02/2010 10:16 AM, Paolo Bonzini wrote:
>>
>>> On 01/21/2010 02:31 PM, Avi Kivity wrote:
>>>
>>>> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
>>>> index feca59f..09207ba 100644
>>>> --- a/arch/x86/kvm/x86.c
>>>> +++ b/arch/x86/kvm/x86.c
>>>> @@ -3266,6 +3266,7 @@ int emulate_invlpg(struct kvm_vcpu *vcpu,
>>>> gva_t address)
>>>> int emulate_clts(struct kvm_vcpu *vcpu)
>>>> {
>>>> kvm_x86_ops->set_cr0(vcpu, kvm_read_cr0_bits(vcpu, ~X86_CR0_TS));
>>>> + kvm_x86_ops->fpu_activate(vcpu);
>>>> return X86EMUL_CONTINUE;
>>>> }
>>>>
>>> Can this code be reached if CLTS is executed in real mode? That
>>> would cause a NULL-pointer access on VMX.
>>>
>> How would this cause a null pointer access?
>>
>>
> vmx.c doesn't initialize kvm_x86_ops->fpu_activate as far as I see.
>

Gaak. Well, that's obviously unintended.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.