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.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c
index 326e3019cd23..4359ea253010 100644
--- a/arch/blackfin/kernel/process.c
+++ b/arch/blackfin/kernel/process.c
@@ -171,6 +171,13 @@ asmlinkage int bfin_clone(struct pt_regs *regs)
171 unsigned long clone_flags; 171 unsigned long clone_flags;
172 unsigned long newsp; 172 unsigned long newsp;
173 173
174#ifdef __ARCH_SYNC_CORE_DCACHE
175 if (current->rt.nr_cpus_allowed == num_possible_cpus()) {
176 current->cpus_allowed = cpumask_of_cpu(smp_processor_id());
177 current->rt.nr_cpus_allowed = 1;
178 }
179#endif
180
174 /* syscall2 puts clone_flags in r0 and usp in r1 */ 181 /* syscall2 puts clone_flags in r0 and usp in r1 */
175 clone_flags = regs->r0; 182 clone_flags = regs->r0;
176 newsp = regs->r1; 183 newsp = regs->r1;
@@ -338,22 +345,22 @@ int _access_ok(unsigned long addr, unsigned long size)
338 if (addr >= (unsigned long)__init_begin && 345 if (addr >= (unsigned long)__init_begin &&
339 addr + size <= (unsigned long)__init_end) 346 addr + size <= (unsigned long)__init_end)
340 return 1; 347 return 1;
341 if (addr >= L1_SCRATCH_START 348 if (addr >= get_l1_scratch_start()
342 && addr + size <= L1_SCRATCH_START + L1_SCRATCH_LENGTH) 349 && addr + size <= get_l1_scratch_start() + L1_SCRATCH_LENGTH)
343 return 1; 350 return 1;
344#if L1_CODE_LENGTH != 0 351#if L1_CODE_LENGTH != 0
345 if (addr >= L1_CODE_START + (_etext_l1 - _stext_l1) 352 if (addr >= get_l1_code_start() + (_etext_l1 - _stext_l1)
346 && addr + size <= L1_CODE_START + L1_CODE_LENGTH) 353 && addr + size <= get_l1_code_start() + L1_CODE_LENGTH)
347 return 1; 354 return 1;
348#endif 355#endif
349#if L1_DATA_A_LENGTH != 0 356#if L1_DATA_A_LENGTH != 0
350 if (addr >= L1_DATA_A_START + (_ebss_l1 - _sdata_l1) 357 if (addr >= get_l1_data_a_start() + (_ebss_l1 - _sdata_l1)
351 && addr + size <= L1_DATA_A_START + L1_DATA_A_LENGTH) 358 && addr + size <= get_l1_data_a_start() + L1_DATA_A_LENGTH)
352 return 1; 359 return 1;
353#endif 360#endif
354#if L1_DATA_B_LENGTH != 0 361#if L1_DATA_B_LENGTH != 0
355 if (addr >= L1_DATA_B_START + (_ebss_b_l1 - _sdata_b_l1) 362 if (addr >= get_l1_data_b_start() + (_ebss_b_l1 - _sdata_b_l1)
356 && addr + size <= L1_DATA_B_START + L1_DATA_B_LENGTH) 363 && addr + size <= get_l1_data_b_start() + L1_DATA_B_LENGTH)
357 return 1; 364 return 1;
358#endif 365#endif
359#if L2_LENGTH != 0 366#if L2_LENGTH != 0