aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/kernel/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/tile/kernel/process.c')
-rw-r--r--arch/tile/kernel/process.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/tile/kernel/process.c b/arch/tile/kernel/process.c
index 6be799150501..307d010696c9 100644
--- a/arch/tile/kernel/process.c
+++ b/arch/tile/kernel/process.c
@@ -548,6 +548,9 @@ int do_work_pending(struct pt_regs *regs, u32 thread_info_flags)
548 if (!user_mode(regs)) 548 if (!user_mode(regs))
549 return 0; 549 return 0;
550 550
551 /* Enable interrupts; they are disabled again on return to caller. */
552 local_irq_enable();
553
551 if (thread_info_flags & _TIF_NEED_RESCHED) { 554 if (thread_info_flags & _TIF_NEED_RESCHED) {
552 schedule(); 555 schedule();
553 return 1; 556 return 1;
@@ -594,13 +597,13 @@ SYSCALL_DEFINE4(execve, const char __user *, path,
594 struct pt_regs *, regs) 597 struct pt_regs *, regs)
595{ 598{
596 long error; 599 long error;
597 char *filename; 600 struct filename *filename;
598 601
599 filename = getname(path); 602 filename = getname(path);
600 error = PTR_ERR(filename); 603 error = PTR_ERR(filename);
601 if (IS_ERR(filename)) 604 if (IS_ERR(filename))
602 goto out; 605 goto out;
603 error = do_execve(filename, argv, envp, regs); 606 error = do_execve(filename->name, argv, envp, regs);
604 putname(filename); 607 putname(filename);
605 if (error == 0) 608 if (error == 0)
606 single_step_execve(); 609 single_step_execve();
@@ -615,13 +618,13 @@ long compat_sys_execve(const char __user *path,
615 struct pt_regs *regs) 618 struct pt_regs *regs)
616{ 619{
617 long error; 620 long error;
618 char *filename; 621 struct filename *filename;
619 622
620 filename = getname(path); 623 filename = getname(path);
621 error = PTR_ERR(filename); 624 error = PTR_ERR(filename);
622 if (IS_ERR(filename)) 625 if (IS_ERR(filename))
623 goto out; 626 goto out;
624 error = compat_do_execve(filename, argv, envp, regs); 627 error = compat_do_execve(filename->name, argv, envp, regs);
625 putname(filename); 628 putname(filename);
626 if (error == 0) 629 if (error == 0)
627 single_step_execve(); 630 single_step_execve();