diff options
Diffstat (limited to 'arch/sh/kernel')
| -rw-r--r-- | arch/sh/kernel/cpu/sh5/entry.S | 14 | ||||
| -rw-r--r-- | arch/sh/kernel/entry-common.S | 27 | ||||
| -rw-r--r-- | arch/sh/kernel/machine_kexec.c | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/ptrace_64.c | 2 | ||||
| -rw-r--r-- | arch/sh/kernel/setup.c | 6 | ||||
| -rw-r--r-- | arch/sh/kernel/sys_sh.c | 2 |
6 files changed, 12 insertions, 41 deletions
diff --git a/arch/sh/kernel/cpu/sh5/entry.S b/arch/sh/kernel/cpu/sh5/entry.S index 04c7da968146..e640c63d5811 100644 --- a/arch/sh/kernel/cpu/sh5/entry.S +++ b/arch/sh/kernel/cpu/sh5/entry.S | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | * arch/sh/kernel/cpu/sh5/entry.S | 2 | * arch/sh/kernel/cpu/sh5/entry.S |
| 3 | * | 3 | * |
| 4 | * Copyright (C) 2000, 2001 Paolo Alberelli | 4 | * Copyright (C) 2000, 2001 Paolo Alberelli |
| 5 | * Copyright (C) 2004 - 2007 Paul Mundt | 5 | * Copyright (C) 2004 - 2008 Paul Mundt |
| 6 | * Copyright (C) 2003, 2004 Richard Curnow | 6 | * Copyright (C) 2003, 2004 Richard Curnow |
| 7 | * | 7 | * |
| 8 | * This file is subject to the terms and conditions of the GNU General Public | 8 | * This file is subject to the terms and conditions of the GNU General Public |
| @@ -923,6 +923,8 @@ ret_from_exception: | |||
| 923 | blink tr0, ZERO | 923 | blink tr0, ZERO |
| 924 | 924 | ||
| 925 | resume_kernel: | 925 | resume_kernel: |
| 926 | CLI() | ||
| 927 | |||
| 926 | pta restore_all, tr0 | 928 | pta restore_all, tr0 |
| 927 | 929 | ||
| 928 | getcon KCR0, r6 | 930 | getcon KCR0, r6 |
| @@ -939,19 +941,11 @@ need_resched: | |||
| 939 | andi r7, 0xf0, r7 | 941 | andi r7, 0xf0, r7 |
| 940 | bne r7, ZERO, tr0 | 942 | bne r7, ZERO, tr0 |
| 941 | 943 | ||
| 942 | movi ((PREEMPT_ACTIVE >> 16) & 65535), r8 | 944 | movi preempt_schedule_irq, r7 |
| 943 | shori (PREEMPT_ACTIVE & 65535), r8 | ||
| 944 | st.l r6, TI_PRE_COUNT, r8 | ||
| 945 | |||
| 946 | STI() | ||
| 947 | movi schedule, r7 | ||
| 948 | ori r7, 1, r7 | 945 | ori r7, 1, r7 |
| 949 | ptabs r7, tr1 | 946 | ptabs r7, tr1 |
| 950 | blink tr1, LINK | 947 | blink tr1, LINK |
| 951 | 948 | ||
| 952 | st.l r6, TI_PRE_COUNT, ZERO | ||
| 953 | CLI() | ||
| 954 | |||
| 955 | pta need_resched, tr1 | 949 | pta need_resched, tr1 |
| 956 | blink tr1, ZERO | 950 | blink tr1, ZERO |
| 957 | #endif | 951 | #endif |
diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S index 0bc17def55a7..efbb4268875e 100644 --- a/arch/sh/kernel/entry-common.S +++ b/arch/sh/kernel/entry-common.S | |||
| @@ -92,6 +92,7 @@ ENTRY(ret_from_irq) | |||
| 92 | bra resume_userspace | 92 | bra resume_userspace |
| 93 | nop | 93 | nop |
| 94 | ENTRY(resume_kernel) | 94 | ENTRY(resume_kernel) |
| 95 | cli | ||
| 95 | mov.l @(TI_PRE_COUNT,r8), r0 ! current_thread_info->preempt_count | 96 | mov.l @(TI_PRE_COUNT,r8), r0 ! current_thread_info->preempt_count |
| 96 | tst r0, r0 | 97 | tst r0, r0 |
| 97 | bf noresched | 98 | bf noresched |
| @@ -105,28 +106,9 @@ need_resched: | |||
| 105 | and #0xf0, r0 ! interrupts off (exception path)? | 106 | and #0xf0, r0 ! interrupts off (exception path)? |
| 106 | cmp/eq #0xf0, r0 | 107 | cmp/eq #0xf0, r0 |
| 107 | bt noresched | 108 | bt noresched |
| 108 | |||
| 109 | mov.l 1f, r0 | ||
| 110 | mov.l r0, @(TI_PRE_COUNT,r8) | ||
| 111 | |||
| 112 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
| 113 | mov.l 3f, r0 | 109 | mov.l 3f, r0 |
| 114 | jsr @r0 | 110 | jsr @r0 ! call preempt_schedule_irq |
| 115 | nop | ||
| 116 | #endif | ||
| 117 | sti | ||
| 118 | mov.l 2f, r0 | ||
| 119 | jsr @r0 | ||
| 120 | nop | ||
| 121 | mov #0, r0 | ||
| 122 | mov.l r0, @(TI_PRE_COUNT,r8) | ||
| 123 | cli | ||
| 124 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
| 125 | mov.l 4f, r0 | ||
| 126 | jsr @r0 | ||
| 127 | nop | 111 | nop |
| 128 | #endif | ||
| 129 | |||
| 130 | bra need_resched | 112 | bra need_resched |
| 131 | nop | 113 | nop |
| 132 | 114 | ||
| @@ -137,10 +119,7 @@ noresched: | |||
| 137 | .align 2 | 119 | .align 2 |
| 138 | 1: .long PREEMPT_ACTIVE | 120 | 1: .long PREEMPT_ACTIVE |
| 139 | 2: .long schedule | 121 | 2: .long schedule |
| 140 | #ifdef CONFIG_TRACE_IRQFLAGS | 122 | 3: .long preempt_schedule_irq |
| 141 | 3: .long trace_hardirqs_on | ||
| 142 | 4: .long trace_hardirqs_off | ||
| 143 | #endif | ||
| 144 | #endif | 123 | #endif |
| 145 | 124 | ||
| 146 | ENTRY(resume_userspace) | 125 | ENTRY(resume_userspace) |
diff --git a/arch/sh/kernel/machine_kexec.c b/arch/sh/kernel/machine_kexec.c index 4703dff174d5..94df56b0d1f6 100644 --- a/arch/sh/kernel/machine_kexec.c +++ b/arch/sh/kernel/machine_kexec.c | |||
| @@ -102,7 +102,7 @@ void machine_kexec(struct kimage *image) | |||
| 102 | 102 | ||
| 103 | /* now call it */ | 103 | /* now call it */ |
| 104 | rnk = (relocate_new_kernel_t) reboot_code_buffer; | 104 | rnk = (relocate_new_kernel_t) reboot_code_buffer; |
| 105 | (*rnk)(page_list, reboot_code_buffer, image->start, vbr_reg); | 105 | (*rnk)(page_list, reboot_code_buffer, P2SEGADDR(image->start), vbr_reg); |
| 106 | } | 106 | } |
| 107 | 107 | ||
| 108 | void arch_crash_save_vmcoreinfo(void) | 108 | void arch_crash_save_vmcoreinfo(void) |
diff --git a/arch/sh/kernel/ptrace_64.c b/arch/sh/kernel/ptrace_64.c index 5922edd416db..9c6424892bd3 100644 --- a/arch/sh/kernel/ptrace_64.c +++ b/arch/sh/kernel/ptrace_64.c | |||
| @@ -131,6 +131,8 @@ void user_enable_single_step(struct task_struct *child) | |||
| 131 | 131 | ||
| 132 | void user_disable_single_step(struct task_struct *child) | 132 | void user_disable_single_step(struct task_struct *child) |
| 133 | { | 133 | { |
| 134 | struct pt_regs *regs = child->thread.uregs; | ||
| 135 | |||
| 134 | regs->sr &= ~SR_SSTEP; | 136 | regs->sr &= ~SR_SSTEP; |
| 135 | } | 137 | } |
| 136 | 138 | ||
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index a35207655e7b..de832056bf1b 100644 --- a/arch/sh/kernel/setup.c +++ b/arch/sh/kernel/setup.c | |||
| @@ -171,6 +171,7 @@ static void __init reserve_crashkernel(void) | |||
| 171 | (unsigned long)(free_mem >> 20)); | 171 | (unsigned long)(free_mem >> 20)); |
| 172 | crashk_res.start = crash_base; | 172 | crashk_res.start = crash_base; |
| 173 | crashk_res.end = crash_base + crash_size - 1; | 173 | crashk_res.end = crash_base + crash_size - 1; |
| 174 | insert_resource(&iomem_resource, &crashk_res); | ||
| 174 | } | 175 | } |
| 175 | } | 176 | } |
| 176 | #else | 177 | #else |
| @@ -204,11 +205,6 @@ void __init __add_active_range(unsigned int nid, unsigned long start_pfn, | |||
| 204 | request_resource(res, &data_resource); | 205 | request_resource(res, &data_resource); |
| 205 | request_resource(res, &bss_resource); | 206 | request_resource(res, &bss_resource); |
| 206 | 207 | ||
| 207 | #ifdef CONFIG_KEXEC | ||
| 208 | if (crashk_res.start != crashk_res.end) | ||
| 209 | request_resource(res, &crashk_res); | ||
| 210 | #endif | ||
| 211 | |||
| 212 | add_active_range(nid, start_pfn, end_pfn); | 208 | add_active_range(nid, start_pfn, end_pfn); |
| 213 | } | 209 | } |
| 214 | 210 | ||
diff --git a/arch/sh/kernel/sys_sh.c b/arch/sh/kernel/sys_sh.c index 59cd2859ce9b..9061b86d73fa 100644 --- a/arch/sh/kernel/sys_sh.c +++ b/arch/sh/kernel/sys_sh.c | |||
| @@ -170,7 +170,7 @@ asmlinkage int sys_ipc(uint call, int first, int second, | |||
| 170 | version = call >> 16; /* hack for backward compatibility */ | 170 | version = call >> 16; /* hack for backward compatibility */ |
| 171 | call &= 0xffff; | 171 | call &= 0xffff; |
| 172 | 172 | ||
| 173 | if (call <= SEMCTL) | 173 | if (call <= SEMTIMEDOP) |
| 174 | switch (call) { | 174 | switch (call) { |
| 175 | case SEMOP: | 175 | case SEMOP: |
| 176 | return sys_semtimedop(first, | 176 | return sys_semtimedop(first, |
