Re: [PATCH v3] KVM: Specify byte order for KVM_EXIT_MMIO

2014-03-13 Thread Christoffer Dall
On Tue, Jan 28, 2014 at 08:28:42AM -0800, Christoffer Dall wrote:
> The KVM API documentation is not clear about the semantics of the data
> field on the mmio struct on the kvm_run struct.
> 
> This has become problematic when supporting ARM guests on big-endian
> host systems with guests of both endianness types, because it is unclear
> how the data should be exported to user space.
> 
> This should not break with existing implementations as all supported
> existing implementations of known user space applications (QEMU and
> kvmtools for virtio) only support default endianness of the
> architectures on the host side.
> 
> Cc: Marc Zyngier 
> Cc: Peter Maydell 
> Cc: Alexander Graf 
> Signed-off-by: Christoffer Dall 
> ---
> Changes [v2 - v3]:
>  - Change the semantics and wordings as per Scott's, Avi's, and Ben's
>suggestions.
> 
> Changes [v1 - v2]:
>  - s/host kernel should/host user space should/
> 
>  Documentation/virtual/kvm/api.txt | 4 
>  1 file changed, 4 insertions(+)
> 
> diff --git a/Documentation/virtual/kvm/api.txt 
> b/Documentation/virtual/kvm/api.txt
> index 366bf4b..e11f09d 100644
> --- a/Documentation/virtual/kvm/api.txt
> +++ b/Documentation/virtual/kvm/api.txt
> @@ -2565,6 +2565,10 @@ executed a memory-mapped I/O instruction which could 
> not be satisfied
>  by kvm.  The 'data' member contains the written data if 'is_write' is
>  true, and should be filled by application code otherwise.
>  
> +The 'data' member contains, in its first 'len' bytes, the value as it would
> +appear if the VCPU performed a load or store of the appropriate width 
> directly
> +to the byte array.
> +
>  NOTE: For KVM_EXIT_IO, KVM_EXIT_MMIO, KVM_EXIT_OSI, KVM_EXIT_DCR,
>KVM_EXIT_PAPR and KVM_EXIT_EPR the corresponding
>  operations are complete (and guest state is consistent) only after userspace
> -- 
> 1.8.5.2
> 

Any more comments on this one, or can it be applied?

Thanks,
-- 
Christoffer
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 06/10] powerpc/booke64: Use SPRG_TLB_EXFRAME on bolted handlers

2014-03-13 Thread Scott Wood
While bolted handlers (including e6500) do not need to deal with a TLB
miss recursively causing another TLB miss, nested TLB misses can still
happen with crit/mc/debug exceptions -- so we still need to honor
SPRG_TLB_EXFRAME.

We don't need to spend time modifying it in the TLB miss fastpath,
though -- the special level exception will handle that.

Signed-off-by: Scott Wood 
Cc: Mihai Caraman 
Cc: kvm-ppc@vger.kernel.org
---
 arch/powerpc/include/asm/exception-64e.h| 10 ---
 arch/powerpc/include/asm/kvm_booke_hv_asm.h |  8 --
 arch/powerpc/kvm/bookehv_interrupts.S   | 14 +++--
 arch/powerpc/mm/tlb_low_64e.S   | 44 ++---
 4 files changed, 45 insertions(+), 31 deletions(-)

diff --git a/arch/powerpc/include/asm/exception-64e.h 
b/arch/powerpc/include/asm/exception-64e.h
index e73452f..a563d9af 100644
--- a/arch/powerpc/include/asm/exception-64e.h
+++ b/arch/powerpc/include/asm/exception-64e.h
@@ -172,16 +172,6 @@ exc_##label##_book3e:
ld  r9,EX_TLB_R9(r12);  \
ld  r8,EX_TLB_R8(r12);  \
mtlrr16;
-#define TLB_MISS_PROLOG_STATS_BOLTED   
\
-   mflrr10;\
-   std r8,PACA_EXTLB+EX_TLB_R8(r13);   \
-   std r9,PACA_EXTLB+EX_TLB_R9(r13);   \
-   std r10,PACA_EXTLB+EX_TLB_LR(r13);
-#define TLB_MISS_RESTORE_STATS_BOLTED  
\
-   ld  r16,PACA_EXTLB+EX_TLB_LR(r13);  \
-   ld  r9,PACA_EXTLB+EX_TLB_R9(r13);   \
-   ld  r8,PACA_EXTLB+EX_TLB_R8(r13);   \
-   mtlrr16;
 #define TLB_MISS_STATS_D(name) \
addir9,r13,MMSTAT_DSTATS+name;  \
bl  .tlb_stat_inc;
diff --git a/arch/powerpc/include/asm/kvm_booke_hv_asm.h 
b/arch/powerpc/include/asm/kvm_booke_hv_asm.h
index c3e3fd5..e5f048b 100644
--- a/arch/powerpc/include/asm/kvm_booke_hv_asm.h
+++ b/arch/powerpc/include/asm/kvm_booke_hv_asm.h
@@ -45,10 +45,12 @@
  *
  * Expected inputs (TLB exception type):
  *  r10 = saved CR
+ *  r12 = extlb pointer
  *  r13 = PACA_POINTER
- *  *(r13 + PACA_EX##type + EX_TLB_R10) = saved r10
- *  *(r13 + PACA_EX##type + EX_TLB_R11) = saved r11
- *  SPRN_SPRG_GEN_SCRATCH = saved r13
+ *  *(r12 + EX_TLB_R10) = saved r10
+ *  *(r12 + EX_TLB_R11) = saved r11
+ *  *(r12 + EX_TLB_R13) = saved r13
+ *  SPRN_SPRG_GEN_SCRATCH = saved r12
  *
  * Only the bolted version of TLB miss exception handlers is supported now.
  */
diff --git a/arch/powerpc/kvm/bookehv_interrupts.S 
b/arch/powerpc/kvm/bookehv_interrupts.S
index 99635a3..890e338 100644
--- a/arch/powerpc/kvm/bookehv_interrupts.S
+++ b/arch/powerpc/kvm/bookehv_interrupts.S
@@ -229,13 +229,20 @@
stw r10, VCPU_CR(r4)
PPC_STL r11, VCPU_GPR(R4)(r4)
PPC_STL r5, VCPU_GPR(R5)(r4)
-   mfspr   r5, \scratch
PPC_STL r6, VCPU_GPR(R6)(r4)
PPC_STL r8, VCPU_GPR(R8)(r4)
PPC_STL r9, VCPU_GPR(R9)(r4)
-   PPC_STL r5, VCPU_GPR(R13)(r4)
+   .if \type == EX_TLB
+   PPC_LL  r5, EX_TLB_R13(r12)
+   PPC_LL  r6, EX_TLB_R10(r12)
+   PPC_LL  r8, EX_TLB_R11(r12)
+   mfspr   r12, \scratch
+   .else
+   mfspr   r5, \scratch
PPC_LL  r6, (\paca_ex + \ex_r10)(r13)
PPC_LL  r8, (\paca_ex + \ex_r11)(r13)
+   .endif
+   PPC_STL r5, VCPU_GPR(R13)(r4)
PPC_STL r3, VCPU_GPR(R3)(r4)
PPC_STL r7, VCPU_GPR(R7)(r4)
PPC_STL r12, VCPU_GPR(R12)(r4)
@@ -444,6 +451,9 @@ _GLOBAL(kvmppc_resume_host)
PPC_STD(r8, VCPU_SHARED_SPRG6, r11)
mfxer   r3
PPC_STD(r9, VCPU_SHARED_SPRG7, r11)
+#ifdef CONFIG_64BIT
+   mtspr   SPRN_SPRG_VDSO_WRITE, r3
+#endif
 
/* save guest MAS registers and restore host mas4 & mas6 */
mfspr   r5, SPRN_MAS0
diff --git a/arch/powerpc/mm/tlb_low_64e.S b/arch/powerpc/mm/tlb_low_64e.S
index 1e50249..356e8b4 100644
--- a/arch/powerpc/mm/tlb_low_64e.S
+++ b/arch/powerpc/mm/tlb_low_64e.S
@@ -39,37 +39,49 @@
  **
  **/
 
+/*
+ * Note that, unlike non-bolted handlers, TLB_EXFRAME is not
+ * modified by the TLB miss handlers themselves, since the TLB miss
+ * handler code will not itself cause a recursive TLB miss.
+ *
+ * TLB_EXFRAME will be modified when crit/mc/debug exceptions are
+ * entered/exited.
+ */
 .macro tlb_prolog_bolted intnum addr
-   mtspr   SPRN_SPRG_GEN_SCRATCH,r13
+   mtspr   SPRN_SPRG_GEN_SCRATCH,r12
+   mfspr   r12,SPRN_SPRG_TLB_EXFRAME
+   std r13,EX_TLB_R13(r12)
+   std r10,EX_T

[PATCH 05/10] powerpc/booke64: Use SPRG7 for VDSO

2014-03-13 Thread Scott Wood
Previously SPRG3 was marked for use by both VDSO and critical
interrupts (though critical interrupts were not fully implemented).

In commit 8b64a9dfb091f1eca8b7e58da82f1e7d1d5fe0ad ("powerpc/booke64:
Use SPRG0/3 scratch for bolted TLB miss & crit int"), Mihai Caraman
made an attempt to resolve this conflict by restoring the VDSO value
early in the critical interrupt, but this has some issues:

 - It's incompatible with EXCEPTION_COMMON which restores r13 from the
   by-then-overwritten scratch (this cost me some debugging time).
 - It forces critical exceptions to be a special case handled
   differently from even machine check and debug level exceptions.
 - It didn't occur to me that it was possible to make this work at all
   (by doing a final "ld r13, PACA_EXCRIT+EX_R13(r13)") until after
   I made (most of) this patch. :-)

It might be worth investigating using a load rather than SPRG on return
from all exceptions (except TLB misses where the scratch never leaves
the SPRG) -- it could save a few cycles.  Until then, let's stick with
SPRG for all exceptions.

Since we cannot use SPRG4-7 for scratch without corrupting the state of
a KVM guest, move VDSO to SPRG7 on book3e.  Since neither SPRG4-7 nor
critical interrupts exist on book3s, SPRG3 is still used for VDSO
there.

Signed-off-by: Scott Wood 
Cc: Mihai Caraman 
Cc: Anton Blanchard 
Cc: Paul Mackerras 
Cc: kvm-ppc@vger.kernel.org
---
 arch/powerpc/include/asm/exception-64e.h|  5 ++---
 arch/powerpc/include/asm/kvm_booke_hv_asm.h |  9 +
 arch/powerpc/include/asm/paca.h |  2 +-
 arch/powerpc/include/asm/reg.h  | 13 ++---
 arch/powerpc/kernel/asm-offsets.c   |  2 +-
 arch/powerpc/kernel/exceptions-64e.S| 19 ++-
 arch/powerpc/kernel/vdso.c  |  8 
 arch/powerpc/kernel/vdso32/getcpu.S |  2 +-
 arch/powerpc/kernel/vdso64/getcpu.S |  2 +-
 arch/powerpc/kvm/book3s_hv_rmhandlers.S |  4 ++--
 arch/powerpc/kvm/book3s_interrupts.S|  4 ++--
 arch/powerpc/kvm/bookehv_interrupts.S   | 10 ++
 12 files changed, 33 insertions(+), 47 deletions(-)

diff --git a/arch/powerpc/include/asm/exception-64e.h 
b/arch/powerpc/include/asm/exception-64e.h
index 51fa43e..e73452f 100644
--- a/arch/powerpc/include/asm/exception-64e.h
+++ b/arch/powerpc/include/asm/exception-64e.h
@@ -46,9 +46,8 @@
 #define EX_CR  (1 * 8)
 #define EX_R10 (2 * 8)
 #define EX_R11 (3 * 8)
-#define EX_R13 (4 * 8)
-#define EX_R14 (5 * 8)
-#define EX_R15 (6 * 8)
+#define EX_R14 (4 * 8)
+#define EX_R15 (5 * 8)
 
 /*
  * The TLB miss exception uses different slots.
diff --git a/arch/powerpc/include/asm/kvm_booke_hv_asm.h 
b/arch/powerpc/include/asm/kvm_booke_hv_asm.h
index 3a79f53..c3e3fd5 100644
--- a/arch/powerpc/include/asm/kvm_booke_hv_asm.h
+++ b/arch/powerpc/include/asm/kvm_booke_hv_asm.h
@@ -36,20 +36,13 @@
  *   *(r8 + GPR11) = saved r11
  *
  * 64-bit host
- * Expected inputs (GEN/GDBELL/DBG/MC exception types):
+ * Expected inputs (GEN/GDBELL/DBG/CRIT/MC exception types):
  *  r10 = saved CR
  *  r13 = PACA_POINTER
  *  *(r13 + PACA_EX##type + EX_R10) = saved r10
  *  *(r13 + PACA_EX##type + EX_R11) = saved r11
  *  SPRN_SPRG_##type##_SCRATCH = saved r13
  *
-  * Expected inputs (CRIT exception type):
- *  r10 = saved CR
- *  r13 = PACA_POINTER
- *  *(r13 + PACA_EX##type + EX_R10) = saved r10
- *  *(r13 + PACA_EX##type + EX_R11) = saved r11
- *  *(r13 + PACA_EX##type + EX_R13) = saved r13
- *
  * Expected inputs (TLB exception type):
  *  r10 = saved CR
  *  r13 = PACA_POINTER
diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h
index 9c5dbc3..948f01a 100644
--- a/arch/powerpc/include/asm/paca.h
+++ b/arch/powerpc/include/asm/paca.h
@@ -146,7 +146,7 @@ struct paca_struct {
u8 io_sync; /* writel() needs spin_unlock sync */
u8 irq_work_pending;/* IRQ_WORK interrupt while 
soft-disable */
u8 nap_state_lost;  /* NV GPR values lost in power7_idle */
-   u64 sprg3;  /* Saved user-visible sprg */
+   u64 sprg_vdso;  /* Saved user-visible sprg */
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
u64 tm_scratch; /* TM scratch area for reclaim */
 #endif
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
index 90c06ec..b9ac329 100644
--- a/arch/powerpc/include/asm/reg.h
+++ b/arch/powerpc/include/asm/reg.h
@@ -577,9 +577,13 @@
 #define SPRN_SPRG3 0x113   /* Special Purpose Register General 3 */
 #define SPRN_USPRG30x103   /* SPRG3 userspace read */
 #define SPRN_SPRG4 0x114   /* Special Purpose Register General 4 */
+#define SPRN_USPRG40x104   /* SPRG4 userspace read */
 #define SPRN_SPRG5 0x115   /* Special Purpose Register General 5 */
+#define SPRN_USPRG50x105   /* SPRG5 userspace read */
 #define SPRN_SPRG6  

Re: [PATCH 0/2] Fixes for HV KVM on PPC for 3.14

2014-03-13 Thread Scott Wood
On Thu, 2014-03-13 at 20:01 +1100, Paul Mackerras wrote:
> These two patches fix two things in hypervisor-mode KVM for the IBM
> POWER server processors.  The first patch removes a hunk of extraneous
> code that got in as a result of a mistake I made in cleaning up after
> rebasing a patch.  The second fixes a bug that causes host memory
> corruption.  Both patches fix things that cause host crashes, so I'd
> like them in 3.14 if possible.  The two patches only touch one file,
> arch/powerpc/kvm/book3s_hv_rmhandlers.S, so they can't possibly cause
> any problems for other architectures or other PPC platforms.
> 
> The patches are against the master branch of the kvm tree but should
> apply equally on Linus' current master branch.
> 
> Scott, please ack.
> 
> Paolo, I meant to get these out earlier, but a personal emergency
> arose this week and delayed me.

Acked-by: Scott Wood 

-Scott


--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/2] Fixes for HV KVM on PPC for 3.14

2014-03-13 Thread Paul Mackerras
On Thu, Mar 13, 2014 at 10:50:29AM +0100, Paolo Bonzini wrote:
> Il 13/03/2014 10:01, Paul Mackerras ha scritto:
> >These two patches fix two things in hypervisor-mode KVM for the IBM
> >POWER server processors.  The first patch removes a hunk of extraneous
> >code that got in as a result of a mistake I made in cleaning up after
> >rebasing a patch.  The second fixes a bug that causes host memory
> >corruption.  Both patches fix things that cause host crashes, so I'd
> >like them in 3.14 if possible.  The two patches only touch one file,
> >arch/powerpc/kvm/book3s_hv_rmhandlers.S, so they can't possibly cause
> >any problems for other architectures or other PPC platforms.
> >
> >The patches are against the master branch of the kvm tree but should
> >apply equally on Linus' current master branch.
> >
> >Scott, please ack.
> 
> I had to do some conflict resolution when applying Alex's 3.14 pull
> request, I'm glad it wasn't me who introduced the bug! :)  Phew.
> 
> This means that kvm/next is also broken right now for PPC.  I can
> merge the patches into kvm/next too (in addition to sending them to
> Linus for 3.14).  Would that help in any way?

Yes, that would be great, thanks.

Paul.
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/2] Fixes for HV KVM on PPC for 3.14

2014-03-13 Thread Paolo Bonzini

Il 13/03/2014 10:01, Paul Mackerras ha scritto:

These two patches fix two things in hypervisor-mode KVM for the IBM
POWER server processors.  The first patch removes a hunk of extraneous
code that got in as a result of a mistake I made in cleaning up after
rebasing a patch.  The second fixes a bug that causes host memory
corruption.  Both patches fix things that cause host crashes, so I'd
like them in 3.14 if possible.  The two patches only touch one file,
arch/powerpc/kvm/book3s_hv_rmhandlers.S, so they can't possibly cause
any problems for other architectures or other PPC platforms.

The patches are against the master branch of the kvm tree but should
apply equally on Linus' current master branch.

Scott, please ack.


I had to do some conflict resolution when applying Alex's 3.14 pull 
request, I'm glad it wasn't me who introduced the bug! :)  Phew.


This means that kvm/next is also broken right now for PPC.  I can merge 
the patches into kvm/next too (in addition to sending them to Linus for 
3.14).  Would that help in any way?


Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/2] KVM: PPC: Book3S HV: Fix register usage when loading/saving VRSAVE

2014-03-13 Thread Paul Mackerras
Commit 595e4f7e697e ("KVM: PPC: Book3S HV: Use load/store_fp_state
functions in HV guest entry/exit") changed the register usage in
kvmppc_save_fp() and kvmppc_load_fp() but omitted changing the
instructions that load and save VRSAVE.  The result is that the
VRSAVE value was loaded from a constant address, and saved to a
location past the end of the vcpu struct, causing host kernel
memory corruption and various kinds of host kernel crashes.

This fixes the problem by using register r31, which contains the
vcpu pointer, instead of r3 and r4.

Signed-off-by: Paul Mackerras 
---
 arch/powerpc/kvm/book3s_hv_rmhandlers.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S 
b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index 781e6bf..818dce3 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -2136,7 +2136,7 @@ BEGIN_FTR_SECTION
 END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
 #endif
mfspr   r6,SPRN_VRSAVE
-   stw r6,VCPU_VRSAVE(r3)
+   stw r6,VCPU_VRSAVE(r31)
mtlrr30
mtmsrd  r5
isync
@@ -2173,7 +2173,7 @@ BEGIN_FTR_SECTION
bl  .load_vr_state
 END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
 #endif
-   lwz r7,VCPU_VRSAVE(r4)
+   lwz r7,VCPU_VRSAVE(r31)
mtspr   SPRN_VRSAVE,r7
mtlrr30
mr  r4,r31
-- 
1.9.rc1

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] KVM: PPC: Book3S HV: Remove bogus duplicate code

2014-03-13 Thread Paul Mackerras
Commit 7b490411c37f ("KVM: PPC: Book3S HV: Add new state for
transactional memory") incorrectly added some duplicate code to the
guest exit path because I didn't manage to clean up after a rebase
correctly.  This removes the extraneous material.  The presence of
this extraneous code causes host crashes whenever a guest is run.

Signed-off-by: Paul Mackerras 
---
 arch/powerpc/kvm/book3s_hv_rmhandlers.S | 67 -
 1 file changed, 67 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S 
b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index e66d4ec..781e6bf 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -1504,73 +1504,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
 1: addir8,r8,16
.endr
 
-   /* Save DEC */
-   mfspr   r5,SPRN_DEC
-   mftbr6
-   extsw   r5,r5
-   add r5,r5,r6
-   std r5,VCPU_DEC_EXPIRES(r9)
-
-BEGIN_FTR_SECTION
-   b   8f
-END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_207S)
-   /* Turn on TM so we can access TFHAR/TFIAR/TEXASR */
-   mfmsr   r8
-   li  r0, 1
-   rldimi  r8, r0, MSR_TM_LG, 63-MSR_TM_LG
-   mtmsrd  r8
-
-   /* Save POWER8-specific registers */
-   mfspr   r5, SPRN_IAMR
-   mfspr   r6, SPRN_PSPB
-   mfspr   r7, SPRN_FSCR
-   std r5, VCPU_IAMR(r9)
-   stw r6, VCPU_PSPB(r9)
-   std r7, VCPU_FSCR(r9)
-   mfspr   r5, SPRN_IC
-   mfspr   r6, SPRN_VTB
-   mfspr   r7, SPRN_TAR
-   std r5, VCPU_IC(r9)
-   std r6, VCPU_VTB(r9)
-   std r7, VCPU_TAR(r9)
-#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
-   mfspr   r5, SPRN_TFHAR
-   mfspr   r6, SPRN_TFIAR
-   mfspr   r7, SPRN_TEXASR
-   std r5, VCPU_TFHAR(r9)
-   std r6, VCPU_TFIAR(r9)
-   std r7, VCPU_TEXASR(r9)
-#endif
-   mfspr   r8, SPRN_EBBHR
-   std r8, VCPU_EBBHR(r9)
-   mfspr   r5, SPRN_EBBRR
-   mfspr   r6, SPRN_BESCR
-   mfspr   r7, SPRN_CSIGR
-   mfspr   r8, SPRN_TACR
-   std r5, VCPU_EBBRR(r9)
-   std r6, VCPU_BESCR(r9)
-   std r7, VCPU_CSIGR(r9)
-   std r8, VCPU_TACR(r9)
-   mfspr   r5, SPRN_TCSCR
-   mfspr   r6, SPRN_ACOP
-   mfspr   r7, SPRN_PID
-   mfspr   r8, SPRN_WORT
-   std r5, VCPU_TCSCR(r9)
-   std r6, VCPU_ACOP(r9)
-   stw r7, VCPU_GUEST_PID(r9)
-   std r8, VCPU_WORT(r9)
-8:
-
-   /* Save and reset AMR and UAMOR before turning on the MMU */
-BEGIN_FTR_SECTION
-   mfspr   r5,SPRN_AMR
-   mfspr   r6,SPRN_UAMOR
-   std r5,VCPU_AMR(r9)
-   std r6,VCPU_UAMOR(r9)
-   li  r6,0
-   mtspr   SPRN_AMR,r6
-END_FTR_SECTION_IFSET(CPU_FTR_ARCH_206)
-
/* Unset guest mode */
li  r0, KVM_GUEST_MODE_NONE
stb r0, HSTATE_IN_GUEST(r13)
-- 
1.9.rc1

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/2] Fixes for HV KVM on PPC for 3.14

2014-03-13 Thread Paul Mackerras
These two patches fix two things in hypervisor-mode KVM for the IBM
POWER server processors.  The first patch removes a hunk of extraneous
code that got in as a result of a mistake I made in cleaning up after
rebasing a patch.  The second fixes a bug that causes host memory
corruption.  Both patches fix things that cause host crashes, so I'd
like them in 3.14 if possible.  The two patches only touch one file,
arch/powerpc/kvm/book3s_hv_rmhandlers.S, so they can't possibly cause
any problems for other architectures or other PPC platforms.

The patches are against the master branch of the kvm tree but should
apply equally on Linus' current master branch.

Scott, please ack.

Paolo, I meant to get these out earlier, but a personal emergency
arose this week and delayed me.

Thanks,
Paul.
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html