Message ID | 20240828135140.1015940-1-tiwei.btw@antgroup.com |
---|---|
State | Changes Requested |
Headers | show |
Series | um: Fix the return value of elf_core_copy_task_fpregs | expand |
----- Ursprüngliche Mail ----- > Von: "Tiwei Bie" <tiwei.btw@antgroup.com> > An: "richard" <richard@nod.at>, "anton ivanov" <anton.ivanov@cambridgegreys.com>, "Johannes Berg" > <johannes@sipsolutions.net> > CC: "linux-um" <linux-um@lists.infradead.org>, "linux-kernel" <linux-kernel@vger.kernel.org>, "Tiwei Bie" > <tiwei.btw@antgroup.com> > Gesendet: Mittwoch, 28. August 2024 15:51:40 > Betreff: [PATCH] um: Fix the return value of elf_core_copy_task_fpregs > This function is expected to return a boolean value, which should be > true on success and false on failure. > > Fixes: d1254b12c93e ("uml: fix x86_64 core dump crash") > Signed-off-by: Tiwei Bie <tiwei.btw@antgroup.com> > --- > arch/um/kernel/process.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c > index be2856af6d4c..3cc2b663aa78 100644 > --- a/arch/um/kernel/process.c > +++ b/arch/um/kernel/process.c > @@ -291,7 +291,8 @@ unsigned long __get_wchan(struct task_struct *p) > int elf_core_copy_task_fpregs(struct task_struct *t, elf_fpregset_t *fpu) > { > int cpu = current_thread_info()->cpu; > + int pid = userspace_pid[cpu]; > > - return save_i387_registers(userspace_pid[cpu], (unsigned long *) fpu); > + return save_i387_registers(pid, (unsigned long *) fpu) == 0; Why a new local variable? Thanks, //richard
On 2024/9/13 02:51, Richard Weinberger wrote: > ----- Ursprüngliche Mail ----- >> Von: "Tiwei Bie" <tiwei.btw@antgroup.com> >> An: "richard" <richard@nod.at>, "anton ivanov" <anton.ivanov@cambridgegreys.com>, "Johannes Berg" >> <johannes@sipsolutions.net> >> CC: "linux-um" <linux-um@lists.infradead.org>, "linux-kernel" <linux-kernel@vger.kernel.org>, "Tiwei Bie" >> <tiwei.btw@antgroup.com> >> Gesendet: Mittwoch, 28. August 2024 15:51:40 >> Betreff: [PATCH] um: Fix the return value of elf_core_copy_task_fpregs > >> This function is expected to return a boolean value, which should be >> true on success and false on failure. >> >> Fixes: d1254b12c93e ("uml: fix x86_64 core dump crash") >> Signed-off-by: Tiwei Bie <tiwei.btw@antgroup.com> >> --- >> arch/um/kernel/process.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c >> index be2856af6d4c..3cc2b663aa78 100644 >> --- a/arch/um/kernel/process.c >> +++ b/arch/um/kernel/process.c >> @@ -291,7 +291,8 @@ unsigned long __get_wchan(struct task_struct *p) >> int elf_core_copy_task_fpregs(struct task_struct *t, elf_fpregset_t *fpu) >> { >> int cpu = current_thread_info()->cpu; >> + int pid = userspace_pid[cpu]; >> >> - return save_i387_registers(userspace_pid[cpu], (unsigned long *) fpu); >> + return save_i387_registers(pid, (unsigned long *) fpu) == 0; > > Why a new local variable? Thanks for the review! The new variable isn't necessary for the fix. Will drop it to make the fix more straightforward. Regards, Tiwei
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c index be2856af6d4c..3cc2b663aa78 100644 --- a/arch/um/kernel/process.c +++ b/arch/um/kernel/process.c @@ -291,7 +291,8 @@ unsigned long __get_wchan(struct task_struct *p) int elf_core_copy_task_fpregs(struct task_struct *t, elf_fpregset_t *fpu) { int cpu = current_thread_info()->cpu; + int pid = userspace_pid[cpu]; - return save_i387_registers(userspace_pid[cpu], (unsigned long *) fpu); + return save_i387_registers(pid, (unsigned long *) fpu) == 0; }
This function is expected to return a boolean value, which should be true on success and false on failure. Fixes: d1254b12c93e ("uml: fix x86_64 core dump crash") Signed-off-by: Tiwei Bie <tiwei.btw@antgroup.com> --- arch/um/kernel/process.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)