]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - arch/powerpc/mm/book3s32/hash_low.S
mm: introduce include/linux/pgtable.h
[mirror_ubuntu-jammy-kernel.git] / arch / powerpc / mm / book3s32 / hash_low.S
index 877d880890fe467f31fc814d82da15c4a7a0dcf9..65a1817f1ad362badabcebd844e58ca6c514c137 100644 (file)
@@ -16,7 +16,7 @@
 
 #include <asm/reg.h>
 #include <asm/page.h>
-#include <asm/pgtable.h>
+#include <linux/pgtable.h>
 #include <asm/cputable.h>
 #include <asm/ppc_asm.h>
 #include <asm/thread_info.h>
@@ -81,7 +81,7 @@ _GLOBAL(hash_page)
        rlwinm. r8,r8,0,0,20            /* extract pt base address */
 #endif
 #ifdef CONFIG_SMP
-       beq-    hash_page_out           /* return if no mapping */
+       beq-    .Lhash_page_out         /* return if no mapping */
 #else
        /* XXX it seems like the 601 will give a machine fault on the
           rfi if its alignment is wrong (bottom 4 bits of address are
@@ -109,11 +109,11 @@ _GLOBAL(hash_page)
 #if (PTE_FLAGS_OFFSET != 0)
        addi    r8,r8,PTE_FLAGS_OFFSET
 #endif
-retry:
+.Lretry:
        lwarx   r6,0,r8                 /* get linux-style pte, flag word */
        andc.   r5,r3,r6                /* check access & ~permission */
 #ifdef CONFIG_SMP
-       bne-    hash_page_out           /* return if access not permitted */
+       bne-    .Lhash_page_out         /* return if access not permitted */
 #else
        bnelr-
 #endif
@@ -128,7 +128,7 @@ retry:
 #endif /* CONFIG_SMP */
 #endif /* CONFIG_PTE_64BIT */
        stwcx.  r5,0,r8                 /* attempt to update PTE */
-       bne-    retry                   /* retry if someone got there first */
+       bne-    .Lretry                 /* retry if someone got there first */
 
        mfsrin  r3,r4                   /* get segment reg for segment */
 #ifndef CONFIG_VMAP_STACK
@@ -156,13 +156,14 @@ retry:
 #endif
 
 #ifdef CONFIG_SMP
-hash_page_out:
+.Lhash_page_out:
        eieio
        lis     r8, (mmu_hash_lock - PAGE_OFFSET)@ha
        li      r0,0
        stw     r0, (mmu_hash_lock - PAGE_OFFSET)@l(r8)
        blr
 #endif /* CONFIG_SMP */
+_ASM_NOKPROBE_SYMBOL(hash_page)
 
 /*
  * Add an entry for a particular page to the hash table.
@@ -267,6 +268,7 @@ _GLOBAL(add_hash_page)
        lwz     r0,4(r1)
        mtlr    r0
        blr
+_ASM_NOKPROBE_SYMBOL(add_hash_page)
 
 /*
  * This routine adds a hardware PTE to the hash table.
@@ -360,7 +362,7 @@ END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT)
 1:     LDPTEu  r6,HPTE_SIZE(r4)        /* get next PTE */
        CMPPTE  0,r6,r5
        bdnzf   2,1b                    /* loop while ctr != 0 && !cr0.eq */
-       beq+    found_slot
+       beq+    .Lfound_slot
 
        patch_site      0f, patch__hash_page_B
        /* Search the secondary PTEG for a matching PTE */
@@ -372,7 +374,7 @@ END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT)
 2:     LDPTEu  r6,HPTE_SIZE(r4)
        CMPPTE  0,r6,r5
        bdnzf   2,2b
-       beq+    found_slot
+       beq+    .Lfound_slot
        xori    r5,r5,PTE_H             /* clear H bit again */
 
        /* Search the primary PTEG for an empty slot */
@@ -381,7 +383,7 @@ END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT)
 1:     LDPTEu  r6,HPTE_SIZE(r4)        /* get next PTE */
        TST_V(r6)                       /* test valid bit */
        bdnzf   2,1b                    /* loop while ctr != 0 && !cr0.eq */
-       beq+    found_empty
+       beq+    .Lfound_empty
 
        /* update counter of times that the primary PTEG is full */
        lis     r4, (primary_pteg_full - PAGE_OFFSET)@ha
@@ -399,7 +401,7 @@ END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT)
 2:     LDPTEu  r6,HPTE_SIZE(r4)
        TST_V(r6)
        bdnzf   2,2b
-       beq+    found_empty
+       beq+    .Lfound_empty
        xori    r5,r5,PTE_H             /* clear H bit again */
 
        /*
@@ -437,9 +439,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT)
 
 #ifndef CONFIG_SMP
        /* Store PTE in PTEG */
-found_empty:
+.Lfound_empty:
        STPTE   r5,0(r4)
-found_slot:
+.Lfound_slot:
        STPTE   r8,HPTE_SIZE/2(r4)
 
 #else /* CONFIG_SMP */
@@ -460,8 +462,8 @@ found_slot:
  * We do however have to make sure that the PTE is never in an invalid
  * state with the V bit set.
  */
-found_empty:
-found_slot:
+.Lfound_empty:
+.Lfound_slot:
        CLR_V(r5,r0)            /* clear V (valid) bit in PTE */
        STPTE   r5,0(r4)
        sync
@@ -474,6 +476,7 @@ found_slot:
 
        sync            /* make sure pte updates get to memory */
        blr
+_ASM_NOKPROBE_SYMBOL(create_hpte)
 
        .section .bss
        .align  2
@@ -630,6 +633,7 @@ _GLOBAL(flush_hash_pages)
        isync
        blr
 EXPORT_SYMBOL(flush_hash_pages)
+_ASM_NOKPROBE_SYMBOL(flush_hash_pages)
 
 /*
  * Flush an entry from the TLB
@@ -667,6 +671,7 @@ _GLOBAL(_tlbie)
        sync
 #endif /* CONFIG_SMP */
        blr
+_ASM_NOKPROBE_SYMBOL(_tlbie)
 
 /*
  * Flush the entire TLB. 603/603e only
@@ -708,3 +713,4 @@ _GLOBAL(_tlbia)
        isync
 #endif /* CONFIG_SMP */
        blr
+_ASM_NOKPROBE_SYMBOL(_tlbia)