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:
10
cr-dump.c
10
cr-dump.c
@@ -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;
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user