Commit 6bc4f16c authored by Al Viro's avatar Al Viro

[ia64] access_uarea(): stop bothering with gpregs_[gs]et()

We know this won't be called for child == current, so we don't need
to bother with callbacks, etc. - just do unw_init_from_blocked_task(),
unw_unwind_to_user() and do the payload of gpregs_[gs]et().  For
one register.  Which is to say, access_elf_reg().
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent a79ca8e7
......@@ -1936,15 +1936,14 @@ access_uarea(struct task_struct *child, unsigned long addr,
}
if (pos != -1) {
if (write_access)
ret = gpregs_set(child, NULL, pos,
sizeof(unsigned long), data, NULL);
else
ret = gpregs_get(child, NULL, pos,
sizeof(unsigned long), data, NULL);
if (ret != 0)
return -1;
struct unw_frame_info info;
memset(&info, 0, sizeof(info));
unw_init_from_blocked_task(&info, child);
if (unw_unwind_to_user(&info) < 0)
return 0;
return access_elf_reg(child, &info, pos, data, write_access);
}
/* access debug registers */
......
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