Commit bb15450d authored by Cyrill Gorcunov's avatar Cyrill Gorcunov

image: Drop tls_array from the image

We use registers set anyway
Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@gmail.com>
parent bbabbe89
...@@ -556,30 +556,6 @@ err: ...@@ -556,30 +556,6 @@ err:
return ret; return ret;
} }
static int dump_task_tls(pid_t pid, struct desc_struct *tls_array, int size)
{
int ret = -1;
if (size != GDT_ENTRY_TLS_ENTRIES) {
pr_err("Wrong TLS storage size: %d\n", size);
goto err;
}
memzero(tls_array, sizeof(*tls_array) * size);
/* 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 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;
}
static int get_task_regs(pid_t pid, struct core_entry *core) static int get_task_regs(pid_t pid, struct core_entry *core)
{ {
user_fpregs_struct_t fpregs = {-1}; user_fpregs_struct_t fpregs = {-1};
...@@ -658,12 +634,6 @@ static int dump_task_core_seized(pid_t pid, struct cr_fdset *cr_fdset) ...@@ -658,12 +634,6 @@ static int dump_task_core_seized(pid_t pid, struct cr_fdset *cr_fdset)
goto err_free; goto err_free;
pr_info("OK\n"); pr_info("OK\n");
pr_info("Obtainting TLS ... ");
ret = dump_task_tls(pid, core->u.arch.tls_array, ARRAY_SIZE(core->u.arch.tls_array));
if (ret)
goto err_free;
pr_info("OK\n");
pr_info("Obtainting personality ... "); pr_info("Obtainting personality ... ");
ret = get_task_personality(pid, &core->task_personality); ret = get_task_personality(pid, &core->task_personality);
if (ret) if (ret)
......
...@@ -92,15 +92,6 @@ static void show_core_regs(struct cr_fdset *cr_fdset) ...@@ -92,15 +92,6 @@ static void show_core_regs(struct cr_fdset *cr_fdset)
pr_regs3(regs, r15, bp, bx); pr_regs3(regs, r15, bp, bx);
pr_regs4(regs, orig_ax, flags, fs_base, gs_base); pr_regs4(regs, orig_ax, flags, fs_base, gs_base);
pr_info("\n\t---[TLS area]---\n");
lseek(fd_core, GET_FILE_OFF(struct core_entry, u.arch.tls_array), SEEK_SET);
for (i = 0; i < GDT_ENTRY_TLS_ENTRIES; i++) {
read_ptr_safe(fd_core, &tls, err);
pr_info("tls[%2i] = %x\n", i, tls.base_addr);
}
err: err:
return; return;
} }
......
...@@ -171,7 +171,6 @@ struct user_fpregs_entry { ...@@ -171,7 +171,6 @@ struct user_fpregs_entry {
struct ckpt_arch_entry { struct ckpt_arch_entry {
struct user_regs_entry gpregs; struct user_regs_entry gpregs;
struct user_fpregs_entry fpregs; struct user_fpregs_entry fpregs;
struct desc_struct tls_array[GDT_ENTRY_TLS_ENTRIES];
}; };
#define CKPT_ARCH_SIZE (1 * 4096) #define CKPT_ARCH_SIZE (1 * 4096)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment