aboutsummaryrefslogtreecommitdiffstats
path: root/arch/hexagon/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/hexagon/kernel')
-rw-r--r--arch/hexagon/kernel/ptrace.c1
-rw-r--r--arch/hexagon/kernel/signal.c12
-rw-r--r--arch/hexagon/kernel/smp.c11
-rw-r--r--arch/hexagon/kernel/vdso.c3
-rw-r--r--arch/hexagon/kernel/vm_events.c1
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
35static int genregs_get(struct task_struct *target, 34static 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(&current->sighand->siglock); 195 block_sigmask(ka, sig);
196 sigorsets(&current->blocked, &current->blocked, &ka->sa.sa_mask);
197 if (!(ka->sa.sa_flags & SA_NODEFER))
198 sigaddset(&current->blocked, sig);
199 recalc_sigpending();
200 spin_unlock_irq(&current->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(&current->sighand->siglock); 303 set_current_blocked(&blocked);
309 current->blocked = blocked;
310 recalc_sigpending();
311 spin_unlock_irq(&current->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