diff options
Diffstat (limited to 'arch/hexagon/kernel')
-rw-r--r-- | arch/hexagon/kernel/ptrace.c | 1 | ||||
-rw-r--r-- | arch/hexagon/kernel/signal.c | 12 | ||||
-rw-r--r-- | arch/hexagon/kernel/smp.c | 11 | ||||
-rw-r--r-- | arch/hexagon/kernel/vdso.c | 3 | ||||
-rw-r--r-- | arch/hexagon/kernel/vm_events.c | 1 |
5 files changed, 7 insertions, 21 deletions
diff --git a/arch/hexagon/kernel/ptrace.c b/arch/hexagon/kernel/ptrace.c index bea3f08470f..32342de1a79 100644 --- a/arch/hexagon/kernel/ptrace.c +++ b/arch/hexagon/kernel/ptrace.c | |||
@@ -29,7 +29,6 @@ | |||
29 | #include <linux/regset.h> | 29 | #include <linux/regset.h> |
30 | #include <linux/user.h> | 30 | #include <linux/user.h> |
31 | 31 | ||
32 | #include <asm/system.h> | ||
33 | #include <asm/user.h> | 32 | #include <asm/user.h> |
34 | 33 | ||
35 | static int genregs_get(struct task_struct *target, | 34 | static int genregs_get(struct task_struct *target, |
diff --git a/arch/hexagon/kernel/signal.c b/arch/hexagon/kernel/signal.c index b45be318119..ecbab345760 100644 --- a/arch/hexagon/kernel/signal.c +++ b/arch/hexagon/kernel/signal.c | |||
@@ -192,12 +192,7 @@ static int handle_signal(int sig, siginfo_t *info, struct k_sigaction *ka, | |||
192 | if (rc) | 192 | if (rc) |
193 | return rc; | 193 | return rc; |
194 | 194 | ||
195 | spin_lock_irq(¤t->sighand->siglock); | 195 | block_sigmask(ka, sig); |
196 | sigorsets(¤t->blocked, ¤t->blocked, &ka->sa.sa_mask); | ||
197 | if (!(ka->sa.sa_flags & SA_NODEFER)) | ||
198 | sigaddset(¤t->blocked, sig); | ||
199 | recalc_sigpending(); | ||
200 | spin_unlock_irq(¤t->sighand->siglock); | ||
201 | 196 | ||
202 | return 0; | 197 | return 0; |
203 | } | 198 | } |
@@ -305,10 +300,7 @@ asmlinkage int sys_rt_sigreturn(void) | |||
305 | goto badframe; | 300 | goto badframe; |
306 | 301 | ||
307 | sigdelsetmask(&blocked, ~_BLOCKABLE); | 302 | sigdelsetmask(&blocked, ~_BLOCKABLE); |
308 | spin_lock_irq(¤t->sighand->siglock); | 303 | set_current_blocked(&blocked); |
309 | current->blocked = blocked; | ||
310 | recalc_sigpending(); | ||
311 | spin_unlock_irq(¤t->sighand->siglock); | ||
312 | 304 | ||
313 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) | 305 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) |
314 | goto badframe; | 306 | goto badframe; |
diff --git a/arch/hexagon/kernel/smp.c b/arch/hexagon/kernel/smp.c index c871a2cffae..9b44a9e2d05 100644 --- a/arch/hexagon/kernel/smp.c +++ b/arch/hexagon/kernel/smp.c | |||
@@ -29,14 +29,13 @@ | |||
29 | #include <linux/smp.h> | 29 | #include <linux/smp.h> |
30 | #include <linux/spinlock.h> | 30 | #include <linux/spinlock.h> |
31 | 31 | ||
32 | #include <asm/system.h> /* xchg */ | ||
33 | #include <asm/time.h> /* timer_interrupt */ | 32 | #include <asm/time.h> /* timer_interrupt */ |
34 | #include <asm/hexagon_vm.h> | 33 | #include <asm/hexagon_vm.h> |
35 | 34 | ||
36 | #define BASE_IPI_IRQ 26 | 35 | #define BASE_IPI_IRQ 26 |
37 | 36 | ||
38 | /* | 37 | /* |
39 | * cpu_possible_map needs to be filled out prior to setup_per_cpu_areas | 38 | * cpu_possible_mask needs to be filled out prior to setup_per_cpu_areas |
40 | * (which is prior to any of our smp_prepare_cpu crap), in order to set | 39 | * (which is prior to any of our smp_prepare_cpu crap), in order to set |
41 | * up the... per_cpu areas. | 40 | * up the... per_cpu areas. |
42 | */ | 41 | */ |
@@ -179,8 +178,6 @@ void __cpuinit start_secondary(void) | |||
179 | printk(KERN_INFO "%s cpu %d\n", __func__, current_thread_info()->cpu); | 178 | printk(KERN_INFO "%s cpu %d\n", __func__, current_thread_info()->cpu); |
180 | 179 | ||
181 | set_cpu_online(cpu, true); | 180 | set_cpu_online(cpu, true); |
182 | while (!cpumask_test_cpu(cpu, cpu_active_mask)) | ||
183 | cpu_relax(); | ||
184 | local_irq_enable(); | 181 | local_irq_enable(); |
185 | 182 | ||
186 | cpu_idle(); | 183 | cpu_idle(); |
@@ -211,7 +208,7 @@ int __cpuinit __cpu_up(unsigned int cpu) | |||
211 | stack_start = ((void *) thread) + THREAD_SIZE; | 208 | stack_start = ((void *) thread) + THREAD_SIZE; |
212 | __vmstart(start_secondary, stack_start); | 209 | __vmstart(start_secondary, stack_start); |
213 | 210 | ||
214 | while (!cpu_isset(cpu, cpu_online_map)) | 211 | while (!cpu_online(cpu)) |
215 | barrier(); | 212 | barrier(); |
216 | 213 | ||
217 | return 0; | 214 | return 0; |
@@ -232,7 +229,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
232 | 229 | ||
233 | /* Right now, let's just fake it. */ | 230 | /* Right now, let's just fake it. */ |
234 | for (i = 0; i < max_cpus; i++) | 231 | for (i = 0; i < max_cpus; i++) |
235 | cpu_set(i, cpu_present_map); | 232 | set_cpu_present(i, true); |
236 | 233 | ||
237 | /* Also need to register the interrupts for IPI */ | 234 | /* Also need to register the interrupts for IPI */ |
238 | if (max_cpus > 1) | 235 | if (max_cpus > 1) |
@@ -272,5 +269,5 @@ void smp_start_cpus(void) | |||
272 | int i; | 269 | int i; |
273 | 270 | ||
274 | for (i = 0; i < NR_CPUS; i++) | 271 | for (i = 0; i < NR_CPUS; i++) |
275 | cpu_set(i, cpu_possible_map); | 272 | set_cpu_possible(i, true); |
276 | } | 273 | } |
diff --git a/arch/hexagon/kernel/vdso.c b/arch/hexagon/kernel/vdso.c index 16277c33308..f212a453b52 100644 --- a/arch/hexagon/kernel/vdso.c +++ b/arch/hexagon/kernel/vdso.c | |||
@@ -78,8 +78,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) | |||
78 | /* MAYWRITE to allow gdb to COW and set breakpoints. */ | 78 | /* MAYWRITE to allow gdb to COW and set breakpoints. */ |
79 | ret = install_special_mapping(mm, vdso_base, PAGE_SIZE, | 79 | ret = install_special_mapping(mm, vdso_base, PAGE_SIZE, |
80 | VM_READ|VM_EXEC| | 80 | VM_READ|VM_EXEC| |
81 | VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC| | 81 | VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC, |
82 | VM_ALWAYSDUMP, | ||
83 | &vdso_page); | 82 | &vdso_page); |
84 | 83 | ||
85 | if (ret) | 84 | if (ret) |
diff --git a/arch/hexagon/kernel/vm_events.c b/arch/hexagon/kernel/vm_events.c index 986a081e32e..591fc1b6863 100644 --- a/arch/hexagon/kernel/vm_events.c +++ b/arch/hexagon/kernel/vm_events.c | |||
@@ -22,7 +22,6 @@ | |||
22 | #include <asm/registers.h> | 22 | #include <asm/registers.h> |
23 | #include <linux/irq.h> | 23 | #include <linux/irq.h> |
24 | #include <linux/hardirq.h> | 24 | #include <linux/hardirq.h> |
25 | #include <asm/system.h> | ||
26 | 25 | ||
27 | /* | 26 | /* |
28 | * show_regs - print pt_regs structure | 27 | * show_regs - print pt_regs structure |