Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[sfrench/cifs-2.6.git] / arch / powerpc / kernel / exceptions-64s.S
index 8f880bc77c56a2a8cd811ca19a21677778856130..1c06d297154532473527de1ee7a26081714f4fa0 100644 (file)
@@ -63,11 +63,13 @@ BEGIN_FTR_SECTION
        GET_PACA(r13)
 
 #ifdef CONFIG_KVM_BOOK3S_64_HV
-       lbz     r0,PACAPROCSTART(r13)
-       cmpwi   r0,0x80
-       bne     1f
-       li      r0,1
-       stb     r0,PACAPROCSTART(r13)
+       li      r0,KVM_HWTHREAD_IN_KERNEL
+       stb     r0,HSTATE_HWTHREAD_STATE(r13)
+       /* Order setting hwthread_state vs. testing hwthread_req */
+       sync
+       lbz     r0,HSTATE_HWTHREAD_REQ(r13)
+       cmpwi   r0,0
+       beq     1f
        b       kvm_start_guest
 1:
 #endif
@@ -94,12 +96,10 @@ machine_check_pSeries_1:
 data_access_pSeries:
        HMT_MEDIUM
        SET_SCRATCH0(r13)
-#ifndef CONFIG_POWER4_ONLY
 BEGIN_FTR_SECTION
        b       data_access_check_stab
 data_access_not_stab:
 END_MMU_FTR_SECTION_IFCLR(MMU_FTR_SLB)
-#endif
        EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, data_access_common, EXC_STD,
                                 KVMTEST, 0x300)
 
@@ -301,7 +301,6 @@ machine_check_fwnmi:
                                 EXC_STD, KVMTEST, 0x200)
        KVM_HANDLER_SKIP(PACA_EXMC, EXC_STD, 0x200)
 
-#ifndef CONFIG_POWER4_ONLY
        /* moved from 0x300 */
 data_access_check_stab:
        GET_PACA(r13)
@@ -328,7 +327,6 @@ do_stab_bolted_pSeries:
        GET_SCRATCH0(r10)
        std     r10,PACA_EXSLB+EX_R13(r13)
        EXCEPTION_PROLOG_PSERIES_1(.do_stab_bolted, EXC_STD)
-#endif /* CONFIG_POWER4_ONLY */
 
        KVM_HANDLER_SKIP(PACA_EXGEN, EXC_STD, 0x300)
        KVM_HANDLER_SKIP(PACA_EXSLB, EXC_STD, 0x380)