Re: [PATCH] um: Stop conflating task_struct::stack with thread_info
From: Andy Lutomirski
Date: Mon Jul 18 2016 - 18:26:26 EST
On Mon, Jul 18, 2016 at 3:22 PM, Andy Lutomirski <luto@xxxxxxxxxx> wrote:
> From: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
>
> thread_info may move in the future, so use the accessors.
>
> [Andy Lutomirski wrote this changelog message and changed
> "task_thread_info(child)->cpu" to "task_cpu(child)".]
>
> Message-Id: <CA+55aFxvZhBu9U1cqpVm4frv0p5mqu=0TxsSqE-=95ft8HvCVA@xxxxxxxxxxxxxx>
> Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
Forgot to cc maintainers...
> ---
> arch/x86/um/ptrace_32.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/x86/um/ptrace_32.c b/arch/x86/um/ptrace_32.c
> index ebd4dd6ef73b..2a6f781ce9cf 100644
> --- a/arch/x86/um/ptrace_32.c
> +++ b/arch/x86/um/ptrace_32.c
> @@ -191,7 +191,7 @@ int peek_user(struct task_struct *child, long addr, long data)
>
> static int get_fpregs(struct user_i387_struct __user *buf, struct task_struct *child)
> {
> - int err, n, cpu = ((struct thread_info *) child->stack)->cpu;
> + int err, n, cpu = task_cpu(child);
> struct user_i387_struct fpregs;
>
> err = save_i387_registers(userspace_pid[cpu],
> @@ -208,7 +208,7 @@ static int get_fpregs(struct user_i387_struct __user *buf, struct task_struct *c
>
> static int set_fpregs(struct user_i387_struct __user *buf, struct task_struct *child)
> {
> - int n, cpu = ((struct thread_info *) child->stack)->cpu;
> + int n, cpu = task_cpu(child);
> struct user_i387_struct fpregs;
>
> n = copy_from_user(&fpregs, buf, sizeof(fpregs));
> @@ -221,7 +221,7 @@ static int set_fpregs(struct user_i387_struct __user *buf, struct task_struct *c
>
> static int get_fpxregs(struct user_fxsr_struct __user *buf, struct task_struct *child)
> {
> - int err, n, cpu = ((struct thread_info *) child->stack)->cpu;
> + int err, n, cpu = task_cpu(child);
> struct user_fxsr_struct fpregs;
>
> err = save_fpx_registers(userspace_pid[cpu], (unsigned long *) &fpregs);
> @@ -237,7 +237,7 @@ static int get_fpxregs(struct user_fxsr_struct __user *buf, struct task_struct *
>
> static int set_fpxregs(struct user_fxsr_struct __user *buf, struct task_struct *child)
> {
> - int n, cpu = ((struct thread_info *) child->stack)->cpu;
> + int n, cpu = task_cpu(child);
> struct user_fxsr_struct fpregs;
>
> n = copy_from_user(&fpregs, buf, sizeof(fpregs));
> --
> 2.7.4
>
--
Andy Lutomirski
AMA Capital Management, LLC