diff options
Diffstat (limited to 'arch/parisc/kernel/process.c')
-rw-r--r-- | arch/parisc/kernel/process.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/parisc/kernel/process.c b/arch/parisc/kernel/process.c index 2c05a9292a81..cbc37216bf90 100644 --- a/arch/parisc/kernel/process.c +++ b/arch/parisc/kernel/process.c | |||
@@ -48,6 +48,7 @@ | |||
48 | #include <linux/unistd.h> | 48 | #include <linux/unistd.h> |
49 | #include <linux/kallsyms.h> | 49 | #include <linux/kallsyms.h> |
50 | #include <linux/uaccess.h> | 50 | #include <linux/uaccess.h> |
51 | #include <linux/rcupdate.h> | ||
51 | 52 | ||
52 | #include <asm/io.h> | 53 | #include <asm/io.h> |
53 | #include <asm/asm-offsets.h> | 54 | #include <asm/asm-offsets.h> |
@@ -69,8 +70,10 @@ void cpu_idle(void) | |||
69 | 70 | ||
70 | /* endless idle loop with no priority at all */ | 71 | /* endless idle loop with no priority at all */ |
71 | while (1) { | 72 | while (1) { |
73 | rcu_idle_enter(); | ||
72 | while (!need_resched()) | 74 | while (!need_resched()) |
73 | barrier(); | 75 | barrier(); |
76 | rcu_idle_exit(); | ||
74 | schedule_preempt_disabled(); | 77 | schedule_preempt_disabled(); |
75 | check_pgt_cache(); | 78 | check_pgt_cache(); |
76 | } | 79 | } |
@@ -339,13 +342,13 @@ unsigned long thread_saved_pc(struct task_struct *t) | |||
339 | asmlinkage int sys_execve(struct pt_regs *regs) | 342 | asmlinkage int sys_execve(struct pt_regs *regs) |
340 | { | 343 | { |
341 | int error; | 344 | int error; |
342 | char *filename; | 345 | struct filename *filename; |
343 | 346 | ||
344 | filename = getname((const char __user *) regs->gr[26]); | 347 | filename = getname((const char __user *) regs->gr[26]); |
345 | error = PTR_ERR(filename); | 348 | error = PTR_ERR(filename); |
346 | if (IS_ERR(filename)) | 349 | if (IS_ERR(filename)) |
347 | goto out; | 350 | goto out; |
348 | error = do_execve(filename, | 351 | error = do_execve(filename->name, |
349 | (const char __user *const __user *) regs->gr[25], | 352 | (const char __user *const __user *) regs->gr[25], |
350 | (const char __user *const __user *) regs->gr[24], | 353 | (const char __user *const __user *) regs->gr[24], |
351 | regs); | 354 | regs); |