Takashi Iwai
29282fde80
KVM: x86: Fix invalid secondary exec controls in vmx_cpuid_update()
...
The commit [ad756a16: KVM: VMX: Implement PCID/INVPCID for guests with
EPT] introduced the unconditional access to SECONDARY_VM_EXEC_CONTROL,
and this triggers kernel warnings like below on old CPUs:
vmwrite error: reg 401e value a0568000 (err 12)
Pid: 13649, comm: qemu-kvm Not tainted 3.7.0-rc4-test2+ #154
Call Trace:
[<ffffffffa0558d86>] vmwrite_error+0x27/0x29 [kvm_intel]
[<ffffffffa054e8cb>] vmcs_writel+0x1b/0x20 [kvm_intel]
[<ffffffffa054f114>] vmx_cpuid_update+0x74/0x170 [kvm_intel]
[<ffffffffa03629b6>] kvm_vcpu_ioctl_set_cpuid2+0x76/0x90 [kvm]
[<ffffffffa0341c67>] kvm_arch_vcpu_ioctl+0xc37/0xed0 [kvm]
[<ffffffff81143f7c>] ? __vunmap+0x9c/0x110
[<ffffffffa0551489>] ? vmx_vcpu_load+0x39/0x1a0 [kvm_intel]
[<ffffffffa0340ee2>] ? kvm_arch_vcpu_load+0x52/0x1a0 [kvm]
[<ffffffffa032dcd4>] ? vcpu_load+0x74/0xd0 [kvm]
[<ffffffffa032deb0>] kvm_vcpu_ioctl+0x110/0x5e0 [kvm]
[<ffffffffa032e93d>] ? kvm_dev_ioctl+0x4d/0x4a0 [kvm]
[<ffffffff8117dc6f>] do_vfs_ioctl+0x8f/0x530
[<ffffffff81139d76>] ? remove_vma+0x56/0x60
[<ffffffff8113b708>] ? do_munmap+0x328/0x400
[<ffffffff81187c8c>] ? fget_light+0x4c/0x100
[<ffffffff8117e1a1>] sys_ioctl+0x91/0xb0
[<ffffffff815a942d>] system_call_fastpath+0x1a/0x1f
This patch adds a check for the availability of secondary exec
control to avoid these warnings.
Cc: <stable@vger.kernel.org> [v3.6+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2012-11-16 20:25:18 -02:00
..
2012-10-14 12:41:28 -07:00
2012-09-05 10:43:12 +02:00
2012-10-18 14:01:33 -07:00
2012-10-10 12:02:25 +09:00
2012-11-10 06:56:21 +01:00
2012-10-26 09:35:46 -07:00
2012-11-16 20:25:18 -02:00
2012-09-28 15:05:15 +09:30
2012-10-02 18:01:56 +01:00
2012-03-13 06:24:09 +01:00
2012-10-25 15:45:45 -07:00
2012-09-24 16:54:35 -04:00
2012-10-15 14:38:24 +02:00
2012-10-01 12:05:36 -07:00
2012-10-26 10:17:38 +02:00
2012-04-02 13:53:00 +02:00
2012-10-02 08:42:31 +02:00
2012-10-10 12:02:25 +09:00
2012-10-02 18:01:56 +01:00
2012-10-14 13:39:34 -07:00
2012-09-24 12:38:09 -04:00
2012-04-24 09:50:17 +01:00
2012-10-31 12:38:31 -04:00
2012-01-16 08:21:59 +01:00
2012-05-08 11:41:48 -07:00
2012-10-14 13:39:34 -07:00
2012-09-13 17:45:33 +02:00
2012-06-27 19:29:10 -07:00
2012-10-15 13:01:05 -07:00
2012-04-09 13:59:00 -04:00