|
@@ -14,7 +14,6 @@
|
|
|
#include <linux/mm.h>
|
|
|
#include <linux/highmem.h>
|
|
|
#include <linux/pagemap.h>
|
|
|
-#include <linux/smp_lock.h>
|
|
|
#include <linux/ptrace.h>
|
|
|
#include <linux/security.h>
|
|
|
#include <linux/signal.h>
|
|
@@ -666,10 +665,6 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, long, addr, long, data)
|
|
|
struct task_struct *child;
|
|
|
long ret;
|
|
|
|
|
|
- /*
|
|
|
- * This lock_kernel fixes a subtle race with suid exec
|
|
|
- */
|
|
|
- lock_kernel();
|
|
|
if (request == PTRACE_TRACEME) {
|
|
|
ret = ptrace_traceme();
|
|
|
if (!ret)
|
|
@@ -703,7 +698,6 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, long, addr, long, data)
|
|
|
out_put_task_struct:
|
|
|
put_task_struct(child);
|
|
|
out:
|
|
|
- unlock_kernel();
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -813,10 +807,6 @@ asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
|
|
|
struct task_struct *child;
|
|
|
long ret;
|
|
|
|
|
|
- /*
|
|
|
- * This lock_kernel fixes a subtle race with suid exec
|
|
|
- */
|
|
|
- lock_kernel();
|
|
|
if (request == PTRACE_TRACEME) {
|
|
|
ret = ptrace_traceme();
|
|
|
goto out;
|
|
@@ -846,7 +836,6 @@ asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
|
|
|
out_put_task_struct:
|
|
|
put_task_struct(child);
|
|
|
out:
|
|
|
- unlock_kernel();
|
|
|
return ret;
|
|
|
}
|
|
|
#endif /* CONFIG_COMPAT */
|