]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/mm/hash_low_32.S
[POWERPC] Fix deadlock with mmu_hash_lock in hash_page_sync
[linux-2.6-omap-h63xx.git] / arch / powerpc / mm / hash_low_32.S
index 7f830a4888d6e6bc66488ec2b7da02250174c798..e10d76a860d3d77c46bae1a496d956bfd7ab2fc5 100644 (file)
@@ -44,6 +44,9 @@ mmu_hash_lock:
 #ifdef CONFIG_SMP
        .text
 _GLOBAL(hash_page_sync)
+       mfmsr   r10
+       rlwinm  r0,r10,0,17,15          /* clear bit 16 (MSR_EE) */
+       mtmsr   r0
        lis     r8,mmu_hash_lock@h
        ori     r8,r8,mmu_hash_lock@l
        lis     r0,0x0fff
@@ -60,8 +63,9 @@ _GLOBAL(hash_page_sync)
        eieio
        li      r0,0
        stw     r0,0(r8)
-       blr     
-#endif
+       mtmsr   r10
+       blr
+#endif /* CONFIG_SMP */
 
 /*
  * Load a PTE into the hash table, if possible.