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); |
