From 34ac69449df1d1d3fd7bbfef2e890d96c2ef93fe Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Tue, 30 Aug 2005 11:26:15 -0700 Subject: [PATCH] --- yaml --- r: 7075 b: refs/heads/master c: dbd2fdf549317de00e0b5ea465de5372039b7ee8 h: refs/heads/master i: 7073: 3c0ef5387869ec010690b86cc48abadd55050e3b 7071: f14a338753a2872952e7f73e16445ba633bb5fc9 v: v3 --- [refs] | 2 +- trunk/arch/sparc64/kernel/head.S | 3 ++- trunk/arch/sparc64/lib/copy_page.S | 13 ++++++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 1e3cd7ff43a3..84ac2f1f470e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d7ce78fd9a51ca0d6b9a8cf35baef884ddb9a95c +refs/heads/master: dbd2fdf549317de00e0b5ea465de5372039b7ee8 diff --git a/trunk/arch/sparc64/kernel/head.S b/trunk/arch/sparc64/kernel/head.S index 8104a56ca2d8..1fa06c4e3bdb 100644 --- a/trunk/arch/sparc64/kernel/head.S +++ b/trunk/arch/sparc64/kernel/head.S @@ -538,11 +538,12 @@ cheetah_tlb_fixup: nop call cheetah_plus_patch_winfixup nop - 2: /* Patch copy/page operations to cheetah optimized versions. */ call cheetah_patch_copyops nop + call cheetah_patch_copy_page + nop call cheetah_patch_cachetlbops nop diff --git a/trunk/arch/sparc64/lib/copy_page.S b/trunk/arch/sparc64/lib/copy_page.S index 23ebf2c970b7..feebb14fd27a 100644 --- a/trunk/arch/sparc64/lib/copy_page.S +++ b/trunk/arch/sparc64/lib/copy_page.S @@ -87,7 +87,7 @@ copy_user_page: /* %o0=dest, %o1=src, %o2=vaddr */ membar #Sync wrpr %o2, 0x0, %pstate - BRANCH_IF_ANY_CHEETAH(g3,o2,1f) +cheetah_copy_page_insn: ba,pt %xcc, 9f nop @@ -240,3 +240,14 @@ copy_user_page: /* %o0=dest, %o1=src, %o2=vaddr */ stw %o4, [%g6 + TI_PRE_COUNT] .size copy_user_page, .-copy_user_page + + .globl cheetah_patch_copy_page +cheetah_patch_copy_page: + sethi %hi(0x01000000), %o1 ! NOP + sethi %hi(cheetah_copy_page_insn), %o0 + or %o0, %lo(cheetah_copy_page_insn), %o0 + stw %o1, [%o0] + membar #StoreStore + flush %o0 + retl + nop