linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [RFC][KVM][PATCH 1/1] kvm:ppc:booke-64: soft-disable interrupts
@ 2013-05-06  3:10 Tiejun Chen
  2013-05-06  3:13 ` tiejun.chen
  0 siblings, 1 reply; 34+ messages in thread
From: Tiejun Chen @ 2013-05-06  3:10 UTC (permalink / raw)
  To: agraf; +Cc: linuxppc-dev, kvm, kvm-ppc

For the external interrupt, the decrementer exception and the doorbell
excpetion, we also need to soft-disable interrupts while doing as host
interrupt handlers since the DO_KVM hook is always performed to skip
EXCEPTION_COMMON then miss this original chance with the 'ints' (INTS_DISABLE).

Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com>
---
 arch/powerpc/kvm/bookehv_interrupts.S |    9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/powerpc/kvm/bookehv_interrupts.S b/arch/powerpc/kvm/bookehv_interrupts.S
index e8ed7d6..2fd62bf 100644
--- a/arch/powerpc/kvm/bookehv_interrupts.S
+++ b/arch/powerpc/kvm/bookehv_interrupts.S
@@ -33,6 +33,8 @@
 
 #ifdef CONFIG_64BIT
 #include <asm/exception-64e.h>
+#include <asm/hw_irq.h>
+#include <asm/irqflags.h>
 #else
 #include "../kernel/head_booke.h" /* for THREAD_NORMSAVE() */
 #endif
@@ -469,6 +471,13 @@ _GLOBAL(kvmppc_resume_host)
 	PPC_LL	r3, HOST_RUN(r1)
 	mr	r5, r14 /* intno */
 	mr	r14, r4 /* Save vcpu pointer. */
+#ifdef CONFIG_64BIT
+	/* Should we soft-disable interrupts? */
+	andi.	r6, r5, BOOKE_INTERRUPT_EXTERNAL | BOOKE_INTERRUPT_DECREMENTER | BOOKE_INTERRUPT_DOORBELL
+	beq	skip_soft_dis
+	SOFT_DISABLE_INTS(r7,r8)
+skip_soft_dis:
+#endif
 	bl	kvmppc_handle_exit
 
 	/* Restore vcpu pointer and the nonvolatiles we used. */
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2013-05-10 21:50 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-06  3:10 [RFC][KVM][PATCH 1/1] kvm:ppc:booke-64: soft-disable interrupts Tiejun Chen
2013-05-06  3:13 ` tiejun.chen
2013-05-06 23:50   ` Scott Wood
2013-05-07  1:56     ` tiejun.chen
2013-05-07  2:06       ` Scott Wood
2013-05-07  2:43         ` tiejun.chen
2013-05-07  3:04           ` Scott Wood
2013-05-08 13:14         ` Caraman Mihai Claudiu-B02008
2013-05-09  7:33           ` Bhushan Bharat-R65777
2013-05-09  7:47             ` tiejun.chen
2013-05-09  7:51               ` Bhushan Bharat-R65777
2013-05-09  8:04                 ` tiejun.chen
2013-05-09  8:08                 ` Kevin Hao
2013-05-09  8:12                   ` Bhushan Bharat-R65777
2013-05-09  8:17                     ` tiejun.chen
2013-05-09  8:26                       ` Bhushan Bharat-R65777
2013-05-09  8:21                     ` Kevin Hao
2013-05-09 12:26                       ` Benjamin Herrenschmidt
2013-05-09  8:23           ` Bhushan Bharat-R65777
2013-05-09  9:44             ` tiejun.chen
2013-05-09 10:00               ` Bhushan Bharat-R65777
2013-05-09 10:18                 ` tiejun.chen
2013-05-09 11:21                   ` Bhushan Bharat-R65777
2013-05-09 11:35                     ` tiejun.chen
2013-05-09 12:37               ` Benjamin Herrenschmidt
2013-05-09 13:28                 ` David Laight
2013-05-09 22:01                   ` Benjamin Herrenschmidt
2013-05-09 14:13                 ` Chen, Tiejun
2013-05-09 21:27                 ` Scott Wood
2013-05-09 22:07                   ` Benjamin Herrenschmidt
2013-05-09 22:13                     ` Scott Wood
2013-05-10 14:12                     ` Kevin Hao
2013-05-10 21:49                       ` Benjamin Herrenschmidt
2013-05-10 21:50                         ` Benjamin Herrenschmidt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).