]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/parisc/kernel/pacache.S
Merge tag 'docs-4.9-2' of git://git.lwn.net/linux
[karo-tx-linux.git] / arch / parisc / kernel / pacache.S
index b743a80eaba0311e934eda70c76e7acbf8ae6a78..985e06da37f5163fd6ea566024c9f6e82d9db607 100644 (file)
@@ -41,7 +41,7 @@
        .text
        .align  128
 
-ENTRY(flush_tlb_all_local)
+ENTRY_CFI(flush_tlb_all_local)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -190,11 +190,11 @@ fdtdone:
 
        .exit
        .procend
-ENDPROC(flush_tlb_all_local)
+ENDPROC_CFI(flush_tlb_all_local)
 
        .import cache_info,data
 
-ENTRY(flush_instruction_cache_local)
+ENTRY_CFI(flush_instruction_cache_local)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -257,11 +257,11 @@ fisync:
        .exit
 
        .procend
-ENDPROC(flush_instruction_cache_local)
+ENDPROC_CFI(flush_instruction_cache_local)
 
 
        .import cache_info, data
-ENTRY(flush_data_cache_local)
+ENTRY_CFI(flush_data_cache_local)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -325,7 +325,7 @@ fdsync:
        .exit
 
        .procend
-ENDPROC(flush_data_cache_local)
+ENDPROC_CFI(flush_data_cache_local)
 
        .align  16
 
@@ -356,7 +356,7 @@ ENDPROC(flush_data_cache_local)
 
 /* Clear page using kernel mapping.  */
 
-ENTRY(clear_page_asm)
+ENTRY_CFI(clear_page_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -422,11 +422,11 @@ ENTRY(clear_page_asm)
        .exit
 
        .procend
-ENDPROC(clear_page_asm)
+ENDPROC_CFI(clear_page_asm)
 
 /* Copy page using kernel mapping.  */
 
-ENTRY(copy_page_asm)
+ENTRY_CFI(copy_page_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -540,7 +540,7 @@ ENTRY(copy_page_asm)
        .exit
 
        .procend
-ENDPROC(copy_page_asm)
+ENDPROC_CFI(copy_page_asm)
 
 /*
  * NOTE: Code in clear_user_page has a hard coded dependency on the
@@ -573,11 +573,17 @@ ENDPROC(copy_page_asm)
        .endm
 
        /*
-        * We can't do this since copy_user_page is used to bring in
-        * file data that might have instructions. Since the data would
-        * then need to be flushed out so the i-fetch can see it, it
-        * makes more sense to just copy through the kernel translation
-        * and flush it.
+        * copy_user_page_asm() performs a page copy using mappings
+        * equivalent to the user page mappings.  It can be used to
+        * implement copy_user_page() but unfortunately both the `from'
+        * and `to' pages need to be flushed through mappings equivalent
+        * to the user mappings after the copy because the kernel accesses
+        * the `from' page through the kmap kernel mapping and the `to'
+        * page needs to be flushed since code can be copied.  As a
+        * result, this implementation is less efficient than the simpler
+        * copy using the kernel mapping.  It only needs the `from' page
+        * to flushed via the user mapping.  The kunmap routines handle
+        * the flushes needed for the kernel mapping.
         *
         * I'm still keeping this around because it may be possible to
         * use it if more information is passed into copy_user_page().
@@ -586,7 +592,7 @@ ENDPROC(copy_page_asm)
         *
         */
 
-ENTRY(copy_user_page_asm)
+ENTRY_CFI(copy_user_page_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -742,9 +748,9 @@ ENTRY(copy_user_page_asm)
        .exit
 
        .procend
-ENDPROC(copy_user_page_asm)
+ENDPROC_CFI(copy_user_page_asm)
 
-ENTRY(clear_user_page_asm)
+ENTRY_CFI(clear_user_page_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -828,9 +834,9 @@ ENTRY(clear_user_page_asm)
        .exit
 
        .procend
-ENDPROC(clear_user_page_asm)
+ENDPROC_CFI(clear_user_page_asm)
 
-ENTRY(flush_dcache_page_asm)
+ENTRY_CFI(flush_dcache_page_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -904,9 +910,9 @@ ENTRY(flush_dcache_page_asm)
        .exit
 
        .procend
-ENDPROC(flush_dcache_page_asm)
+ENDPROC_CFI(flush_dcache_page_asm)
 
-ENTRY(flush_icache_page_asm)
+ENTRY_CFI(flush_icache_page_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -982,9 +988,9 @@ ENTRY(flush_icache_page_asm)
        .exit
 
        .procend
-ENDPROC(flush_icache_page_asm)
+ENDPROC_CFI(flush_icache_page_asm)
 
-ENTRY(flush_kernel_dcache_page_asm)
+ENTRY_CFI(flush_kernel_dcache_page_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -1025,9 +1031,9 @@ ENTRY(flush_kernel_dcache_page_asm)
        .exit
 
        .procend
-ENDPROC(flush_kernel_dcache_page_asm)
+ENDPROC_CFI(flush_kernel_dcache_page_asm)
 
-ENTRY(purge_kernel_dcache_page_asm)
+ENTRY_CFI(purge_kernel_dcache_page_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -1067,9 +1073,9 @@ ENTRY(purge_kernel_dcache_page_asm)
        .exit
 
        .procend
-ENDPROC(purge_kernel_dcache_page_asm)
+ENDPROC_CFI(purge_kernel_dcache_page_asm)
 
-ENTRY(flush_user_dcache_range_asm)
+ENTRY_CFI(flush_user_dcache_range_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -1088,9 +1094,9 @@ ENTRY(flush_user_dcache_range_asm)
        .exit
 
        .procend
-ENDPROC(flush_user_dcache_range_asm)
+ENDPROC_CFI(flush_user_dcache_range_asm)
 
-ENTRY(flush_kernel_dcache_range_asm)
+ENTRY_CFI(flush_kernel_dcache_range_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -1110,9 +1116,9 @@ ENTRY(flush_kernel_dcache_range_asm)
        .exit
 
        .procend
-ENDPROC(flush_kernel_dcache_range_asm)
+ENDPROC_CFI(flush_kernel_dcache_range_asm)
 
-ENTRY(flush_user_icache_range_asm)
+ENTRY_CFI(flush_user_icache_range_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -1131,9 +1137,9 @@ ENTRY(flush_user_icache_range_asm)
        .exit
 
        .procend
-ENDPROC(flush_user_icache_range_asm)
+ENDPROC_CFI(flush_user_icache_range_asm)
 
-ENTRY(flush_kernel_icache_page)
+ENTRY_CFI(flush_kernel_icache_page)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -1174,9 +1180,9 @@ ENTRY(flush_kernel_icache_page)
        .exit
 
        .procend
-ENDPROC(flush_kernel_icache_page)
+ENDPROC_CFI(flush_kernel_icache_page)
 
-ENTRY(flush_kernel_icache_range_asm)
+ENTRY_CFI(flush_kernel_icache_range_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -1194,13 +1200,13 @@ ENTRY(flush_kernel_icache_range_asm)
        nop
        .exit
        .procend
-ENDPROC(flush_kernel_icache_range_asm)
+ENDPROC_CFI(flush_kernel_icache_range_asm)
 
        /* align should cover use of rfi in disable_sr_hashing_asm and
         * srdis_done.
         */
        .align  256
-ENTRY(disable_sr_hashing_asm)
+ENTRY_CFI(disable_sr_hashing_asm)
        .proc
        .callinfo NO_CALLS
        .entry
@@ -1289,6 +1295,6 @@ srdis_done:
        .exit
 
        .procend
-ENDPROC(disable_sr_hashing_asm)
+ENDPROC_CFI(disable_sr_hashing_asm)
 
        .end