2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-09-03 07:45:17 +00:00

dump: Add GS-TLS handling

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
Cyrill Gorcunov
2011-11-07 17:44:00 +04:00
parent 1f7018a15c
commit da8f61c1c8
2 changed files with 10 additions and 3 deletions

View File

@@ -552,10 +552,14 @@ static int dump_task_tls(pid_t pid, struct desc_struct *tls_array, int size)
memzero(tls_array, sizeof(*tls_array) * size);
/* pure x86-64 has a base address only */
ret = sys_arch_prctl(ARCH_GET_FS, &tls_array[0].base_addr);
/* Pure x86-64 has a base addresses only */
ret = sys_arch_prctl(ARCH_GET_FS, &tls_array[FS_TLS].base_addr);
if (ret)
pr_err("Failed to obtain TLS entry: %d\n", ret);
pr_err("Failed to obtain FS_TLS entry: %d\n", ret);
ret = sys_arch_prctl(ARCH_GET_GS, &tls_array[GS_TLS].base_addr);
if (ret)
pr_err("Failed to obtain GS_TLS entry: %d\n", ret);
err:
return ret;

View File

@@ -12,6 +12,9 @@
#define ARCH_GET_FS 0x1003
#define ARCH_GET_GS 0x1004
#define FS_TLS 0
#define GS_TLS 1
/* some constants for ptrace */
#define PTRACE_SEIZE 0x4206
#define PTRACE_INTERRUPT 0x4207