aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/blackfin/kernel/process.c')
-rw-r--r--arch/blackfin/kernel/process.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c
index 01f98cb964d2..6a660fa921b5 100644
--- a/arch/blackfin/kernel/process.c
+++ b/arch/blackfin/kernel/process.c
@@ -7,7 +7,6 @@
7 */ 7 */
8 8
9#include <linux/module.h> 9#include <linux/module.h>
10#include <linux/smp_lock.h>
11#include <linux/unistd.h> 10#include <linux/unistd.h>
12#include <linux/user.h> 11#include <linux/user.h>
13#include <linux/uaccess.h> 12#include <linux/uaccess.h>
@@ -65,11 +64,11 @@ static void default_idle(void)
65#ifdef CONFIG_IPIPE 64#ifdef CONFIG_IPIPE
66 ipipe_suspend_domain(); 65 ipipe_suspend_domain();
67#endif 66#endif
68 local_irq_disable_hw(); 67 hard_local_irq_disable();
69 if (!need_resched()) 68 if (!need_resched())
70 idle_with_irq_disabled(); 69 idle_with_irq_disabled();
71 70
72 local_irq_enable_hw(); 71 hard_local_irq_enable();
73} 72}
74 73
75/* 74/*
@@ -172,10 +171,8 @@ asmlinkage int bfin_clone(struct pt_regs *regs)
172 unsigned long newsp; 171 unsigned long newsp;
173 172
174#ifdef __ARCH_SYNC_CORE_DCACHE 173#ifdef __ARCH_SYNC_CORE_DCACHE
175 if (current->rt.nr_cpus_allowed == num_possible_cpus()) { 174 if (current->rt.nr_cpus_allowed == num_possible_cpus())
176 current->cpus_allowed = cpumask_of_cpu(smp_processor_id()); 175 set_cpus_allowed_ptr(current, cpumask_of(smp_processor_id()));
177 current->rt.nr_cpus_allowed = 1;
178 }
179#endif 176#endif
180 177
181 /* syscall2 puts clone_flags in r0 and usp in r1 */ 178 /* syscall2 puts clone_flags in r0 and usp in r1 */
@@ -493,6 +490,11 @@ int _access_ok(unsigned long addr, unsigned long size)
493 return 1; 490 return 1;
494#endif 491#endif
495 492
493#ifndef CONFIG_EXCEPTION_L1_SCRATCH
494 if (in_mem_const(addr, size, (unsigned long)l1_stack_base, l1_stack_len))
495 return 1;
496#endif
497
496 aret = in_async(addr, size); 498 aret = in_async(addr, size);
497 if (aret < 2) 499 if (aret < 2)
498 return aret; 500 return aret;