diff options
Diffstat (limited to 'arch/sh/kernel')
-rw-r--r-- | arch/sh/kernel/cpu/sh3/entry.S | 3 | ||||
-rw-r--r-- | arch/sh/kernel/early_printk.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/machvec.c | 7 | ||||
-rw-r--r-- | arch/sh/kernel/ptrace.c | 1 | ||||
-rw-r--r-- | arch/sh/kernel/traps.c | 5 |
5 files changed, 15 insertions, 3 deletions
diff --git a/arch/sh/kernel/cpu/sh3/entry.S b/arch/sh/kernel/cpu/sh3/entry.S index d8e122971c3e..0d12a124055c 100644 --- a/arch/sh/kernel/cpu/sh3/entry.S +++ b/arch/sh/kernel/cpu/sh3/entry.S | |||
@@ -149,8 +149,7 @@ call_dpf: | |||
149 | lds r10, pr | 149 | lds r10, pr |
150 | rts | 150 | rts |
151 | nop | 151 | nop |
152 | 0: sti | 152 | 0: mov.l 3f, r0 |
153 | mov.l 3f, r0 | ||
154 | mov r9, r6 | 153 | mov r9, r6 |
155 | mov r8, r5 | 154 | mov r8, r5 |
156 | jmp @r0 | 155 | jmp @r0 |
diff --git a/arch/sh/kernel/early_printk.c b/arch/sh/kernel/early_printk.c index 9833493d8867..80b637c30203 100644 --- a/arch/sh/kernel/early_printk.c +++ b/arch/sh/kernel/early_printk.c | |||
@@ -76,7 +76,7 @@ static void scif_sercon_putc(int c) | |||
76 | sci_in(&scif_port, SCxSR); | 76 | sci_in(&scif_port, SCxSR); |
77 | sci_out(&scif_port, SCxSR, 0xf3 & ~(0x20 | 0x40)); | 77 | sci_out(&scif_port, SCxSR, 0xf3 & ~(0x20 | 0x40)); |
78 | 78 | ||
79 | while ((sci_in(&scif_port, SCxSR) & 0x40) == 0); | 79 | while ((sci_in(&scif_port, SCxSR) & 0x40) == 0) |
80 | ; | 80 | ; |
81 | 81 | ||
82 | if (c == '\n') | 82 | if (c == '\n') |
diff --git a/arch/sh/kernel/machvec.c b/arch/sh/kernel/machvec.c index 23c5948f0124..129b2cfd18a8 100644 --- a/arch/sh/kernel/machvec.c +++ b/arch/sh/kernel/machvec.c | |||
@@ -91,6 +91,13 @@ void __init sh_mv_setup(void) | |||
91 | (unsigned long)&__machvec_start); | 91 | (unsigned long)&__machvec_start); |
92 | 92 | ||
93 | /* | 93 | /* |
94 | * Sanity check for machvec section alignment. Ensure | ||
95 | * __initmv hasn't been misused. | ||
96 | */ | ||
97 | if (machvec_size % sizeof(struct sh_machine_vector)) | ||
98 | panic("machvec misaligned, invalid __initmv use?"); | ||
99 | |||
100 | /* | ||
94 | * If the machvec hasn't been preselected, use the first | 101 | * If the machvec hasn't been preselected, use the first |
95 | * vector (usually the only one) from .machvec.init. | 102 | * vector (usually the only one) from .machvec.init. |
96 | */ | 103 | */ |
diff --git a/arch/sh/kernel/ptrace.c b/arch/sh/kernel/ptrace.c index 891d1d46c902..f64a2d2416d4 100644 --- a/arch/sh/kernel/ptrace.c +++ b/arch/sh/kernel/ptrace.c | |||
@@ -93,6 +93,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
93 | case PTRACE_PEEKTEXT: /* read word at location addr. */ | 93 | case PTRACE_PEEKTEXT: /* read word at location addr. */ |
94 | case PTRACE_PEEKDATA: | 94 | case PTRACE_PEEKDATA: |
95 | ret = generic_ptrace_peekdata(child, addr, data); | 95 | ret = generic_ptrace_peekdata(child, addr, data); |
96 | break; | ||
96 | 97 | ||
97 | /* read the word at location addr in the USER area. */ | 98 | /* read the word at location addr in the USER area. */ |
98 | case PTRACE_PEEKUSR: { | 99 | case PTRACE_PEEKUSR: { |
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c index 502d43e4785c..67015044d74a 100644 --- a/arch/sh/kernel/traps.c +++ b/arch/sh/kernel/traps.c | |||
@@ -854,9 +854,14 @@ void __init trap_init(void) | |||
854 | set_exception_table_evt(0x800, do_reserved_inst); | 854 | set_exception_table_evt(0x800, do_reserved_inst); |
855 | set_exception_table_evt(0x820, do_illegal_slot_inst); | 855 | set_exception_table_evt(0x820, do_illegal_slot_inst); |
856 | #elif defined(CONFIG_SH_FPU) | 856 | #elif defined(CONFIG_SH_FPU) |
857 | #ifdef CONFIG_CPU_SUBTYPE_SHX3 | ||
858 | set_exception_table_evt(0xd80, do_fpu_state_restore); | ||
859 | set_exception_table_evt(0xda0, do_fpu_state_restore); | ||
860 | #else | ||
857 | set_exception_table_evt(0x800, do_fpu_state_restore); | 861 | set_exception_table_evt(0x800, do_fpu_state_restore); |
858 | set_exception_table_evt(0x820, do_fpu_state_restore); | 862 | set_exception_table_evt(0x820, do_fpu_state_restore); |
859 | #endif | 863 | #endif |
864 | #endif | ||
860 | 865 | ||
861 | #ifdef CONFIG_CPU_SH2 | 866 | #ifdef CONFIG_CPU_SH2 |
862 | set_exception_table_vec(TRAP_ADDRESS_ERROR, address_error_handler); | 867 | set_exception_table_vec(TRAP_ADDRESS_ERROR, address_error_handler); |