Paolo Bonzini
b21629da12
kvm: x86: avoid warning on repeated KVM_SET_TSS_ADDR
...
Found by syzkaller:
WARNING: CPU: 3 PID: 15175 at arch/x86/kvm/x86.c:7705 __x86_set_memory_region+0x1dc/0x1f0 [kvm]()
CPU: 3 PID: 15175 Comm: a.out Tainted: G W 4.4.6-300.fc23.x86_64 #1
Hardware name: LENOVO 2325F51/2325F51, BIOS G2ET32WW (1.12 ) 05/30/2012
0000000000000286 00000000950899a7 ffff88011ab3fbf0 ffffffff813b542e
0000000000000000 ffffffffa0966496 ffff88011ab3fc28 ffffffff810a40f2
00000000000001fd 0000000000003000 ffff88014fc50000 0000000000000000
Call Trace:
[<ffffffff813b542e>] dump_stack+0x63/0x85
[<ffffffff810a40f2>] warn_slowpath_common+0x82/0xc0
[<ffffffff810a423a>] warn_slowpath_null+0x1a/0x20
[<ffffffffa09251cc>] __x86_set_memory_region+0x1dc/0x1f0 [kvm]
[<ffffffffa092521b>] x86_set_memory_region+0x3b/0x60 [kvm]
[<ffffffffa09bb61c>] vmx_set_tss_addr+0x3c/0x150 [kvm_intel]
[<ffffffffa092f4d4>] kvm_arch_vm_ioctl+0x654/0xbc0 [kvm]
[<ffffffffa091d31a>] kvm_vm_ioctl+0x9a/0x6f0 [kvm]
[<ffffffff81241248>] do_vfs_ioctl+0x298/0x480
[<ffffffff812414a9>] SyS_ioctl+0x79/0x90
[<ffffffff817a04ee>] entry_SYSCALL_64_fastpath+0x12/0x71
Testcase:
#include <unistd.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <string.h>
#include <linux/kvm.h>
long r[8];
int main()
{
memset(r, -1, sizeof(r));
r[2] = open("/dev/kvm", O_RDONLY|O_TRUNC);
r[3] = ioctl(r[2], KVM_CREATE_VM, 0x0ul);
r[5] = ioctl(r[3], KVM_SET_TSS_ADDR, 0x20000000ul);
r[7] = ioctl(r[3], KVM_SET_TSS_ADDR, 0x20000000ul);
return 0;
}
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
2016-06-02 17:38:50 +02:00
..
2016-05-26 22:01:22 -07:00
2016-05-23 17:04:14 -07:00
2016-05-20 10:25:16 -07:00
2016-05-26 22:01:22 -07:00
2016-05-20 09:18:22 +02:00
2016-05-27 15:57:31 -07:00
2016-05-27 13:56:02 -07:00
2016-05-25 17:37:33 -07:00
2016-06-02 17:38:50 +02:00
2016-04-22 10:29:07 +02:00
2016-05-16 15:15:17 -07:00
2015-11-03 21:05:40 -08:00
2016-05-25 17:37:33 -07:00
2016-05-16 13:49:32 -04:00
2016-04-13 11:37:41 +02:00
2016-05-24 10:22:34 -07:00
2016-05-25 17:37:33 -07:00
2016-03-31 13:35:10 +02:00
2016-04-20 10:36:57 +02:00
2016-05-12 09:08:23 +02:00
2016-04-20 10:36:57 +02:00
2016-04-29 11:03:30 +02:00
2016-05-27 18:54:59 -07:00
2016-03-15 11:08:26 +01:00
2016-05-24 10:22:34 -07:00
2016-02-09 10:23:49 +01:00
2016-05-21 10:25:19 -07:00
2015-10-21 11:12:56 +02:00
2016-03-15 09:32:27 -07:00
2016-04-22 10:29:07 +02:00