diff options
Diffstat (limited to 'arch/blackfin/kernel/process.c')
-rw-r--r-- | arch/blackfin/kernel/process.c | 16 |
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; |