diff mbox series

um: Fix the return value of elf_core_copy_task_fpregs

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

Commit Message

Tiwei Bie Aug. 28, 2024, 1:51 p.m. UTC
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(-)

Comments

Richard Weinberger Sept. 12, 2024, 6:51 p.m. UTC | #1
----- 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
Tiwei Bie Sept. 13, 2024, 2:20 a.m. UTC | #2
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 mbox series

Patch

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;
 }