Message ID | 2730161a8000f2b5cef009483d92fee81fe900d5.1466974736.git.luto@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sun, Jun 26, 2016 at 5:55 PM, Andy Lutomirski <luto@kernel.org> wrote: > From: Linus Torvalds <torvalds@linux-foundation.org> > > thread_info may move in the future, so use the accessors. > > [changelog written by Andy] > Message-Id: <CA+55aFxvZhBu9U1cqpVm4frv0p5mqu=0TxsSqE-=95ft8HvCVA@mail.gmail.com> > Signed-off-by: Andy Lutomirski <luto@kernel.org> > --- > 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..14e8f6a628c2 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_thread_info(child)->cpu; Shouldn't this use task_cpu() like in patch 23? -- Brian Gerst
On Sun, Jun 26, 2016 at 4:40 PM, Brian Gerst <brgerst@gmail.com> wrote: > On Sun, Jun 26, 2016 at 5:55 PM, Andy Lutomirski <luto@kernel.org> wrote: >> From: Linus Torvalds <torvalds@linux-foundation.org> >> >> thread_info may move in the future, so use the accessors. >> >> [changelog written by Andy] >> Message-Id: <CA+55aFxvZhBu9U1cqpVm4frv0p5mqu=0TxsSqE-=95ft8HvCVA@mail.gmail.com> >> Signed-off-by: Andy Lutomirski <luto@kernel.org> >> --- >> 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..14e8f6a628c2 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_thread_info(child)->cpu; > > Shouldn't this use task_cpu() like in patch 23? > Indeed. But blame Linus -- he wrote it :) If I send a v5, I'll fix this in this patch. Otherwise I'll send a followup patch when this lands. It doesn't matter immediately because I'm not opting um into THREAD_INFO_IN_TASK. --Andy
diff --git a/arch/x86/um/ptrace_32.c b/arch/x86/um/ptrace_32.c index ebd4dd6ef73b..14e8f6a628c2 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_thread_info(child)->cpu; 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_thread_info(child)->cpu; 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_thread_info(child)->cpu; 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_thread_info(child)->cpu; struct user_fxsr_struct fpregs; n = copy_from_user(&fpregs, buf, sizeof(fpregs));