]> Pileus Git - ~andy/linux/blobdiff - arch/powerpc/kvm/book3s_segment.S
Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[~andy/linux] / arch / powerpc / kvm / book3s_segment.S
index 8b2fc66a30665df0533d0024d0424384a719f0c9..798491a268b3f6d0da8e4b9c96fbbcca64d44dd2 100644 (file)
@@ -198,8 +198,8 @@ kvmppc_interrupt:
        /* Save guest PC and MSR */
 #ifdef CONFIG_PPC64
 BEGIN_FTR_SECTION
-       mr      r10, r12
-       andi.   r0,r12,0x2
+       andi.   r0, r12, 0x2
+       cmpwi   cr1, r0, 0
        beq     1f
        mfspr   r3,SPRN_HSRR0
        mfspr   r4,SPRN_HSRR1
@@ -252,6 +252,12 @@ END_FTR_SECTION_IFSET(CPU_FTR_HVMODE)
        beq     ld_last_prev_inst
        cmpwi   r12, BOOK3S_INTERRUPT_ALIGNMENT
        beq-    ld_last_inst
+#ifdef CONFIG_PPC64
+BEGIN_FTR_SECTION
+       cmpwi   r12, BOOK3S_INTERRUPT_H_EMUL_ASSIST
+       beq-    ld_last_inst
+END_FTR_SECTION_IFSET(CPU_FTR_HVMODE)
+#endif
 
        b       no_ld_last_inst
 
@@ -340,8 +346,7 @@ no_dcbz32_off:
 
 #ifdef CONFIG_PPC64
 BEGIN_FTR_SECTION
-       andi.   r0,r10,0x2
-       beq     1f
+       beq     cr1, 1f
        mtspr   SPRN_HSRR1, r6
        mtspr   SPRN_HSRR0, r8
 END_FTR_SECTION_IFSET(CPU_FTR_HVMODE)