Commit 1d19f488 authored by Pavel Emelyanov's avatar Pavel Emelyanov

parasite: Use parasite_ctl as the argument to arch_can_dump_task

The pid is set on ctl and in the next patch I'll use one
more field.

travis-ci: success for Don't get task regs twice
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
Reviewed-by: 's avatarDmitry Safonov <dsafonov@virtuozzo.com>
parent bba96e83
......@@ -42,7 +42,7 @@ void parasite_setup_regs(unsigned long new_ip, void *stack, user_regs_struct_t *
regs->sp = (unsigned long)stack;
}
bool arch_can_dump_task(pid_t pid)
bool arch_can_dump_task(struct parasite_ctl *ctl)
{
/*
* TODO: Add proper check here
......
......@@ -46,7 +46,7 @@ void parasite_setup_regs(unsigned long new_ip, void *stack, user_regs_struct_t *
regs->ARM_cpsr &= PSR_f | PSR_s | PSR_x | MODE32_BIT;
}
bool arch_can_dump_task(pid_t pid)
bool arch_can_dump_task(struct parasite_ctl *ctl)
{
/*
* TODO: Add proper check here
......
......@@ -66,7 +66,7 @@ void parasite_setup_regs(unsigned long new_ip, void *stack, user_regs_struct_t *
regs->trap = 0;
}
bool arch_can_dump_task(pid_t pid)
bool arch_can_dump_task(struct parasite_ctl *ctl)
{
/*
* TODO: We should detect 32bit task when BE support is done.
......
......@@ -75,8 +75,10 @@ static int task_in_compat_mode(pid_t pid)
return cs != 0x33 || ds == 0x2b;
}
bool arch_can_dump_task(pid_t pid)
bool arch_can_dump_task(struct parasite_ctl *ctl)
{
pid_t pid = ctl->rpid;
if (task_in_compat_mode(pid)) {
pr_err("Can't dump task %d running in 32-bit mode\n", pid);
return false;
......
......@@ -117,7 +117,7 @@ extern int syscall_seized(struct parasite_ctl *ctl, int nr, unsigned long *ret,
extern int __parasite_execute_syscall(struct parasite_ctl *ctl,
user_regs_struct_t *regs, const char *code_syscall);
extern bool arch_can_dump_task(pid_t pid);
extern bool arch_can_dump_task(struct parasite_ctl *ctl);
/*
* The PTRACE_SYSCALL will trap task twice -- on
......
......@@ -1365,7 +1365,7 @@ struct parasite_ctl *parasite_infect_seized(pid_t pid, struct pstree_item *item,
parasite_ensure_args_size(dump_pages_args_size(vma_area_list));
parasite_ensure_args_size(aio_rings_args_size(vma_area_list));
if (!arch_can_dump_task(pid))
if (!arch_can_dump_task(ctl))
goto err_restore;
/*
* Inject a parasite engine. Ie allocate memory inside alien
......
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