From: Sam Ravnborg <s...@ravnborg.org>

The CPU is always leon, so the run-time cpuid patching is no longer
required.

Signed-off-by: Sam Ravnborg <s...@ravnborg.org>
Reported-by: Andreas Larsson <andr...@gaisler.com>
Cc: "David S. Miller" <da...@davemloft.net>
Cc: Arnd Bergmann <a...@kernel.org>
Cc: Andreas Larsson <andr...@gaisler.com>
---
 arch/sparc/include/asm/winmacro.h | 12 ------------
 arch/sparc/kernel/entry.S         | 13 -------------
 arch/sparc/kernel/setup_32.c      | 31 -------------------------------
 3 files changed, 56 deletions(-)

diff --git a/arch/sparc/include/asm/winmacro.h 
b/arch/sparc/include/asm/winmacro.h
index b6e911f5d93c..16144900bd6c 100644
--- a/arch/sparc/include/asm/winmacro.h
+++ b/arch/sparc/include/asm/winmacro.h
@@ -105,21 +105,9 @@
 
 #ifdef CONFIG_SMP
 #define LOAD_CURRENT(dest_reg, idreg)                  \
-661:   rd      %tbr, %idreg;                           \
-       srl     %idreg, 10, %idreg;                     \
-       and     %idreg, 0xc, %idreg;                    \
-       .section        .cpuid_patch, "ax";             \
-       /* Instruction location. */                     \
-       .word           661b;                           \
-       /* SUN4D implementation. */                     \
-       lda      [%g0] ASI_M_VIKING_TMP1, %idreg;       \
-       sll      %idreg, 2, %idreg;                     \
-       nop;                                            \
-       /* LEON implementation. */                      \
        rd      %asr17, %idreg;                         \
        srl     %idreg, 0x1c, %idreg;                   \
        sll     %idreg, 0x02, %idreg;                   \
-       .previous;                                      \
        sethi    %hi(current_set), %dest_reg;           \
        or       %dest_reg, %lo(current_set), %dest_reg;\
        ld       [%idreg + %dest_reg], %dest_reg;
diff --git a/arch/sparc/kernel/entry.S b/arch/sparc/kernel/entry.S
index 0f2417ee3f95..f158cbca3e62 100644
--- a/arch/sparc/kernel/entry.S
+++ b/arch/sparc/kernel/entry.S
@@ -984,21 +984,8 @@ flushw_all:
 
 #ifdef CONFIG_SMP
 ENTRY(hard_smp_processor_id)
-661:   rd              %tbr, %g1
-       srl             %g1, 12, %o0
-       and             %o0, 3, %o0
-       .section        .cpuid_patch, "ax"
-       /* Instruction location. */
-       .word           661b
-       /* SUN4D implementation. */
-       lda             [%g0] ASI_M_VIKING_TMP1, %o0
-       nop
-       nop
-       /* LEON implementation. */
        rd              %asr17, %o0
        srl             %o0, 0x1c, %o0
-       nop
-       .previous
        retl
         nop
 ENDPROC(hard_smp_processor_id)
diff --git a/arch/sparc/kernel/setup_32.c b/arch/sparc/kernel/setup_32.c
index 0f38d72aae2d..af5f143ed882 100644
--- a/arch/sparc/kernel/setup_32.c
+++ b/arch/sparc/kernel/setup_32.c
@@ -178,34 +178,6 @@ extern int root_mountflags;
 
 char reboot_command[COMMAND_LINE_SIZE];
 
-struct cpuid_patch_entry {
-       unsigned int    addr;
-       unsigned int    sun4d[3];
-       unsigned int    leon[3];
-};
-extern struct cpuid_patch_entry __cpuid_patch, __cpuid_patch_end;
-
-static void __init per_cpu_patch(void)
-{
-       struct cpuid_patch_entry *p;
-
-       p = &__cpuid_patch;
-       while (p < &__cpuid_patch_end) {
-               unsigned long addr = p->addr;
-               unsigned int *insns;
-
-               insns = &p->leon[0];
-               *(unsigned int *) (addr + 0) = insns[0];
-               flushi(addr + 0);
-               *(unsigned int *) (addr + 4) = insns[1];
-               flushi(addr + 4);
-               *(unsigned int *) (addr + 8) = insns[2];
-               flushi(addr + 8);
-
-               p++;
-       }
-}
-
 static __init void leon_patch(void)
 {
        /* Default instruction is leon - no patching */
@@ -271,9 +243,6 @@ void __init setup_arch(char **cmdline_p)
                (*(linux_dbvec->teach_debugger))();
        }
 
-       /* Run-time patch instructions to match the cpu model */
-       per_cpu_patch();
-
        paging_init();
 
        smp_setup_cpu_possible_map();

-- 
2.34.1

Reply via email to