[IA64] Synchronize kernel RSE to user-space and back
authorPetr Tesarik <ptesarik@suse.cz>
Wed, 12 Dec 2007 14:23:34 +0000 (15:23 +0100)
committerTony Luck <tony.luck@intel.com>
Fri, 8 Feb 2008 20:01:18 +0000 (12:01 -0800)
commit3b2ce0b17824c42bc2e46f7dd903b4acf5e9fff9
treeacf3913f8c0a479615060ffed4cec9283047761c
parent5aa92ffda1b6244b4a248df0b95c07d183ab96d2
[IA64] Synchronize kernel RSE to user-space and back

This is base kernel patch for ptrace RSE bug. It's basically a backport
from the utrace RSE patch I sent out several weeks ago. please review.

when a thread is stopped (ptraced), debugger might change thread's user
stack (change memory directly), and we must avoid the RSE stored in
kernel to override user stack (user space's RSE is newer than kernel's
in the case). To workaround the issue, we copy kernel RSE to user RSE
before the task is stopped, so user RSE has updated data.  we then copy
user RSE to kernel after the task is resummed from traced stop and
kernel will use the newer RSE to return to user.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
CC: Roland McGrath <roland@redhat.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/process.c
arch/ia64/kernel/ptrace.c
include/asm-ia64/ptrace.h
include/asm-ia64/thread_info.h