Commit a2494b9b5fb702becaf8d8e3138f7a1a0d3c537e

Authored by Paul Mundt
1 parent 6e4154d4c2

sh: Kill off dcache writeback from copy_page().

Now that the cache purging is handled manually by all copy_page()
callers, we can kill off copy_page()'s on writeback. This optimizes the
non-aliasing case.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Showing 1 changed file with 3 additions and 8 deletions Side-by-side Diff

arch/sh/lib/copy_page.S
... ... @@ -30,7 +30,9 @@
30 30 mov r4,r10
31 31 mov r5,r11
32 32 mov r5,r8
33   - mov.l .Lpsz,r0
  33 + mov #(PAGE_SIZE >> 10), r0
  34 + shll8 r0
  35 + shll2 r0
34 36 add r0,r8
35 37 !
36 38 1: mov.l @r11+,r0
... ... @@ -43,7 +45,6 @@
43 45 mov.l @r11+,r7
44 46 #if defined(CONFIG_CPU_SH4)
45 47 movca.l r0,@r10
46   - mov r10,r0
47 48 #else
48 49 mov.l r0,@r10
49 50 #endif
... ... @@ -55,9 +56,6 @@
55 56 mov.l r3,@-r10
56 57 mov.l r2,@-r10
57 58 mov.l r1,@-r10
58   -#if defined(CONFIG_CPU_SH4)
59   - ocbwb @r0
60   -#endif
61 59 cmp/eq r11,r8
62 60 bf/s 1b
63 61 add #28,r10
... ... @@ -67,9 +65,6 @@
67 65 mov.l @r15+,r8
68 66 rts
69 67 nop
70   -
71   - .balign 4
72   -.Lpsz: .long PAGE_SIZE
73 68  
74 69 /*
75 70 * __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n);