projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
8a40324
)
KVM: Resolve RCU vs. async page fault problem
author
Gleb Natapov
<
[email protected]
>
Wed, 4 Apr 2012 12:30:33 +0000
(15:30 +0300)
committer
Avi Kivity
<
[email protected]
>
Thu, 5 Apr 2012 16:26:14 +0000
(19:26 +0300)
"Page ready" async PF can kick vcpu out of idle state much like IRQ.
We need to tell RCU about this.
Reported-by: Sasha Levin <
[email protected]
>
Signed-off-by: Gleb Natapov <
[email protected]
>
Reviewed-by: Paul E. McKenney <
[email protected]
>
Signed-off-by: Avi Kivity <
[email protected]
>
arch/x86/kernel/kvm.c
patch
|
blob
|
history
diff --git
a/arch/x86/kernel/kvm.c
b/arch/x86/kernel/kvm.c
index 694d801bf606736fb5b54a74b225fa229c7f5ac4..b8ba6e4a27e4102bd36a6445ec4b503be990d62d 100644
(file)
--- a/
arch/x86/kernel/kvm.c
+++ b/
arch/x86/kernel/kvm.c
@@
-38,6
+38,7
@@
#include <asm/traps.h>
#include <asm/desc.h>
#include <asm/tlbflush.h>
+#include <asm/idle.h>
static int kvmapf = 1;
@@
-253,7
+254,10
@@
do_async_page_fault(struct pt_regs *regs, unsigned long error_code)
kvm_async_pf_task_wait((u32)read_cr2());
break;
case KVM_PV_REASON_PAGE_READY:
+ rcu_irq_enter();
+ exit_idle();
kvm_async_pf_task_wake((u32)read_cr2());
+ rcu_irq_exit();
break;
}
}