Re: [PATCH 2/4] ELF: Remove elf_core_copy_kernel_regs()

From: Michael Ellerman
Date: Wed Apr 13 2022 - 08:31:51 EST


Borislav Petkov <bp@xxxxxxxxx> writes:
> + PPC ML as an FYI that this change will come through tip.

Ack.

cheers

> On Fri, Mar 25, 2022 at 11:39:51AM -0400, Brian Gerst wrote:
>> x86-32 was the last architecture that implemented separate user and
>> kernel registers.
>>
>> Signed-off-by: Brian Gerst <brgerst@xxxxxxxxx>
>> ---
>> arch/powerpc/kernel/fadump.c | 2 +-
>> arch/powerpc/platforms/powernv/opal-core.c | 2 +-
>> include/linux/elfcore.h | 9 ---------
>> kernel/kexec_core.c | 2 +-
>> 4 files changed, 3 insertions(+), 12 deletions(-)
>>
>> diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
>> index 4fdb7c77fda1..c0cf17196d6c 100644
>> --- a/arch/powerpc/kernel/fadump.c
>> +++ b/arch/powerpc/kernel/fadump.c
>> @@ -752,7 +752,7 @@ u32 *__init fadump_regs_to_elf_notes(u32 *buf, struct pt_regs *regs)
>> * FIXME: How do i get PID? Do I really need it?
>> * prstatus.pr_pid = ????
>> */
>> - elf_core_copy_kernel_regs(&prstatus.pr_reg, regs);
>> + elf_core_copy_regs(&prstatus.pr_reg, regs);
>> buf = append_elf_note(buf, CRASH_CORE_NOTE_NAME, NT_PRSTATUS,
>> &prstatus, sizeof(prstatus));
>> return buf;
>> diff --git a/arch/powerpc/platforms/powernv/opal-core.c b/arch/powerpc/platforms/powernv/opal-core.c
>> index 0331f1973f0e..dd6e99edff76 100644
>> --- a/arch/powerpc/platforms/powernv/opal-core.c
>> +++ b/arch/powerpc/platforms/powernv/opal-core.c
>> @@ -112,7 +112,7 @@ static void __init fill_prstatus(struct elf_prstatus *prstatus, int pir,
>> struct pt_regs *regs)
>> {
>> memset(prstatus, 0, sizeof(struct elf_prstatus));
>> - elf_core_copy_kernel_regs(&(prstatus->pr_reg), regs);
>> + elf_core_copy_regs(&(prstatus->pr_reg), regs);
>>
>> /*
>> * Overload PID with PIR value.
>> diff --git a/include/linux/elfcore.h b/include/linux/elfcore.h
>> index f8e206e82476..346a8b56cdc8 100644
>> --- a/include/linux/elfcore.h
>> +++ b/include/linux/elfcore.h
>> @@ -84,15 +84,6 @@ static inline void elf_core_copy_regs(elf_gregset_t *elfregs, struct pt_regs *re
>> #endif
>> }
>>
>> -static inline void elf_core_copy_kernel_regs(elf_gregset_t *elfregs, struct pt_regs *regs)
>> -{
>> -#ifdef ELF_CORE_COPY_KERNEL_REGS
>> - ELF_CORE_COPY_KERNEL_REGS((*elfregs), regs);
>> -#else
>> - elf_core_copy_regs(elfregs, regs);
>> -#endif
>> -}
>> -
>> static inline int elf_core_copy_task_regs(struct task_struct *t, elf_gregset_t* elfregs)
>> {
>> #if defined (ELF_CORE_COPY_TASK_REGS)
>> diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c
>> index 68480f731192..be4b54c2c615 100644
>> --- a/kernel/kexec_core.c
>> +++ b/kernel/kexec_core.c
>> @@ -1078,7 +1078,7 @@ void crash_save_cpu(struct pt_regs *regs, int cpu)
>> return;
>> memset(&prstatus, 0, sizeof(prstatus));
>> prstatus.common.pr_pid = current->pid;
>> - elf_core_copy_kernel_regs(&prstatus.pr_reg, regs);
>> + elf_core_copy_regs(&prstatus.pr_reg, regs);
>> buf = append_elf_note(buf, KEXEC_CORE_NOTE_NAME, NT_PRSTATUS,
>> &prstatus, sizeof(prstatus));
>> final_note(buf);
>> --
>> 2.35.1
>>
>
> --
> Regards/Gruss,
> Boris.
>
> https://people.kernel.org/tglx/notes-about-netiquette