projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
00f08d9
)
KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0
author
Maciej S. Szmigiero
<maciej.szmigiero@oracle.com>
Sun, 1 May 2022 22:07:26 +0000
(
00:07
+0200)
committer
Paolo Bonzini
<pbonzini@redhat.com>
Wed, 8 Jun 2022 08:46:43 +0000
(
04:46
-0400)
Don't BUG/WARN on interrupt injection due to GIF being cleared,
since it's trivial for userspace to force the situation via
KVM_SET_VCPU_EVENTS (even if having at least a WARN there would be correct
for KVM internally generated injections).
kernel BUG at arch/x86/kvm/svm/svm.c:3386!
invalid opcode: 0000 [#1] SMP
CPU: 15 PID: 926 Comm: smm_test Not tainted 5.17.0-rc3+ #264
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
RIP: 0010:svm_inject_irq+0xab/0xb0 [kvm_amd]
Code: <0f> 0b 0f 1f 00 0f 1f 44 00 00 80 3d ac b3 01 00 00 55 48 89 f5 53
RSP: 0018:
ffffc90000b37d88
EFLAGS:
00010246
RAX:
0000000000000000
RBX:
ffff88810a234ac0
RCX:
0000000000000006
RDX:
0000000000000000
RSI:
ffffc90000b37df7
RDI:
ffff88810a234ac0
RBP:
ffffc90000b37df7
R08:
ffff88810a1fa410
R09:
0000000000000000
R10:
0000000000000000
R11:
0000000000000000
R12:
0000000000000000
R13:
ffff888109571000
R14:
ffff88810a234ac0
R15:
0000000000000000
FS:
0000000001821380
(0000) GS:
ffff88846fdc0000
(0000) knlGS:
0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033
CR2:
00007f74fc550008
CR3:
000000010a6fe000
CR4:
0000000000350ea0
Call Trace:
<TASK>
inject_pending_event+0x2f7/0x4c0 [kvm]
kvm_arch_vcpu_ioctl_run+0x791/0x17a0 [kvm]
kvm_vcpu_ioctl+0x26d/0x650 [kvm]
__x64_sys_ioctl+0x82/0xb0
do_syscall_64+0x3b/0xc0
entry_SYSCALL_64_after_hwframe+0x44/0xae
</TASK>
Fixes: 219b65dcf6c0 ("KVM: SVM: Improve nested interrupt injection")
Cc: stable@vger.kernel.org
Co-developed-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Message-Id: <
35426af6e123cbe91ec7ce5132ce72521f02b1b5
.
1651440202
.git.maciej.szmigiero@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/svm/svm.c
patch
|
blob
|
history
diff --git
a/arch/x86/kvm/svm/svm.c
b/arch/x86/kvm/svm/svm.c
index 2628452a5156484695d7a7d24de3ac89bdbf97fd..a191ec1386365ec32f52480b8ca42dac794640c2 100644
(file)
--- a/
arch/x86/kvm/svm/svm.c
+++ b/
arch/x86/kvm/svm/svm.c
@@
-3392,8
+3392,6
@@
static void svm_inject_irq(struct kvm_vcpu *vcpu)
{
struct vcpu_svm *svm = to_svm(vcpu);
- BUG_ON(!(gif_set(svm)));
-
trace_kvm_inj_virq(vcpu->arch.interrupt.nr);
++vcpu->stat.irq_injections;