ptrace: remove PTRACE_SEIZE_DEVEL bit
Denys Vlasenko [Fri, 23 Mar 2012 22:02:43 +0000 (15:02 -0700)]
PTRACE_SEIZE code is tested and ready for production use, remove the
code which requires special bit in data argument to make PTRACE_SEIZE
work.

Strace team prepares for a new release of strace, and we would like to
ship the code which uses PTRACE_SEIZE, preferably after this change goes
into released kernel.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Acked-by: Tejun Heo <tj@kernel.org>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Cc: Pedro Alves <palves@redhat.com>
Cc: Jan Kratochvil <jan.kratochvil@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

include/linux/ptrace.h
kernel/ptrace.c

index 30be180..407c678 100644 (file)
@@ -51,9 +51,6 @@
 #define PTRACE_INTERRUPT       0x4207
 #define PTRACE_LISTEN          0x4208
 
-/* flags in @data for PTRACE_SEIZE */
-#define PTRACE_SEIZE_DEVEL     0x80000000 /* temp flag for development */
-
 /* Wait extended result codes for the above trace options.  */
 #define PTRACE_EVENT_FORK      1
 #define PTRACE_EVENT_VFORK     2
@@ -64,7 +61,7 @@
 /* Extended result codes which enabled by means other than options.  */
 #define PTRACE_EVENT_STOP      128
 
-/* options set using PTRACE_SETOPTIONS */
+/* Options set using PTRACE_SETOPTIONS or using PTRACE_SEIZE @data param */
 #define PTRACE_O_TRACESYSGOOD  1
 #define PTRACE_O_TRACEFORK     (1 << PTRACE_EVENT_FORK)
 #define PTRACE_O_TRACEVFORK    (1 << PTRACE_EVENT_VFORK)
index 4661c5b..ee8d49b 100644 (file)
@@ -237,25 +237,10 @@ static int ptrace_attach(struct task_struct *task, long request,
        bool seize = (request == PTRACE_SEIZE);
        int retval;
 
-       /*
-        * SEIZE will enable new ptrace behaviors which will be implemented
-        * gradually.  SEIZE_DEVEL bit is used to prevent applications
-        * expecting full SEIZE behaviors trapping on kernel commits which
-        * are still in the process of implementing them.
-        *
-        * Only test programs for new ptrace behaviors being implemented
-        * should set SEIZE_DEVEL.  If unset, SEIZE will fail with -EIO.
-        *
-        * Once SEIZE behaviors are completely implemented, this flag
-        * will be removed.
-        */
        retval = -EIO;
        if (seize) {
                if (addr != 0)
                        goto out;
-               if (!(flags & PTRACE_SEIZE_DEVEL))
-                       goto out;
-               flags &= ~(unsigned long)PTRACE_SEIZE_DEVEL;
                if (flags & ~(unsigned long)PTRACE_O_MASK)
                        goto out;
                flags = PT_PTRACED | PT_SEIZED | (flags << PT_OPT_FLAG_SHIFT);