[PATCH] x86_64: fix 2.6.18 regression - PTRACE_OLDSETOPTIONS should be accepted

Also PTRACE_OLDSETOPTIONS should be accepted, as done by kernel/ptrace.c
and forced by binary compatibility. UML/32bit breaks because of this -
since it is wise enough to use PTRACE_OLDSETOPTIONS to be binary compatible
with 2.4 host kernels.

Until 2.6.17 (commit f0f2d6536e3515b5b1b7ae97dc8f176860c8c2ce) we had:

default:
return sys_ptrace(request, pid, addr, data);

Instead here we have:
case PTRACE_GET_THREAD_AREA:
case ...:
return sys_ptrace(request, pid, addr, data);

default:
return -EINVAL;

This change was a style change - when a case is added, it must be
explicitly tested this way. In this case, not enough testing was done.

Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by Paolo 'Blaisorblade' Giarrusso and committed by Linus Torvalds 47c51dff de7b37cd

+1
+1
arch/x86_64/ia32/ptrace32.c
··· 243 243 case PTRACE_SINGLESTEP: 244 244 case PTRACE_DETACH: 245 245 case PTRACE_SYSCALL: 246 + case PTRACE_OLDSETOPTIONS: 246 247 case PTRACE_SETOPTIONS: 247 248 case PTRACE_SET_THREAD_AREA: 248 249 case PTRACE_GET_THREAD_AREA: