kernel-ark/arch/x86
Roland McGrath 84c6f6046c x86_64: make ptrace always sign-extend orig_ax to 64 bits
This makes 64-bit ptrace calls setting the 64-bit orig_ax field for a
32-bit task sign-extend the low 32 bits up to 64.  This matches what a
64-bit debugger expects when tracing a 32-bit task.

This follows on my "x86_64 ia32 syscall restart fix".  This didn't
matter until that was fixed.

The debugger ignores or zeros the high half of every register slot it
sets (including the orig_rax pseudo-register) uniformly.  It expects
that the setting of the low 32 bits always has the same meaning as a
32-bit debugger setting those same 32 bits with native 32-bit
facilities.

This never arose before because the syscall restart check never
matched any -ERESTART* values due to lack of sign extension.  Before
that fix, even 32-bit ptrace setting orig_eax to -1 failed to trigger
the restart check anyway.  So this was never noticed as a regression
of 64-bit debuggers vs 32-bit debuggers on the same 64-bit kernel.

Signed-off-by: Roland McGrath <roland@redhat.com>
[ Changed to just do the sign-extension unconditionally on x86-64,
  since orig_ax is always just a small integer and doesn't need
  the full 64-bit range ]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-03-07 19:05:58 -08:00
..
boot x86-boot: don't request VBE2 information 2008-03-07 16:39:14 +01:00
configs
crypto
ia32 x86: clear DF before calling signal handler 2008-03-07 16:39:14 +01:00
kernel x86_64: make ptrace always sign-extend orig_ax to 64 bits 2008-03-07 19:05:58 -08:00
kvm KVM: VMX: Avoid rearranging switched guest msrs while they are loaded 2008-03-04 15:19:50 +02:00
lguest
lib
mach-default
mach-es7000
mach-generic
mach-rdc321x
mach-visws
mach-voyager
math-emu
mm x86: not set node to cpu_to_node if the node is not online 2008-03-04 17:10:12 +01:00
oprofile
pci
power
vdso
video
xen x86/xen: fix DomU boot problem 2008-03-04 17:10:12 +01:00
Kconfig Kprobes: indicate kretprobe support in Kconfig 2008-03-04 16:35:11 -08:00
Kconfig.cpu x86: a P4 is a P6 not an i486 2008-03-04 11:55:34 -08:00
Kconfig.debug
Makefile
Makefile_32.cpu