Re: [PATCH v10 1/8] crash: introduce arch/*/asm/crash.h

Eric DeVolder
2022-08-08T15:19:36Z

On 8/7/22 22:25, Baoquan He wrote:
> Hi Eric,
>
> On 07/21/22 at 02:17pm, Eric DeVolder wrote:
>> The use of __weak is being eliminated within kexec sources.
>> The technique uses macros mapped onto inline functions in
>> order to replace __weak.
>>
>> This patchset was using __weak and so in order to replace
>> __weak, this patch introduces arch/*/asm/crash.h, patterned
>> after how kexec is moving away from __weak and to the macro
>> definitions.
>
> Are you going to replace __weak in kexec of arll ARCHes? I don't see
> your point why all these empty header files are introduced. Wondering
> what's impacted if not adding these empty files?

Hi Baoquan,
In this patchset, to file include/linux/crash_core.h I added the line #include <asm/crash.h>.
I patterned this after how include/linux/kexec.h does #include <asm/kexec.h>.

For kexec, the items that were __weak are refactored into corresponding asm/kexec.h.

I followed suit for crash __weak items. File crash_core.h now #include's asm/crash.h and
so that file needs to be present for every arch, else build failures ensue. It turns out
x86_64 already had this file.

At this time, I was not planning on converting the other arch's __weak to asm/crash.h, but at least
with these empty files, the infrastructure is in place for when that does occur.

Let me know if you think I need to do something different/more here.
Thanks!
eric

>
>>
>> No functionality changed, yet.
>>
>> Signed-off-by: Eric DeVolder <eric.devolder@oracle.com>
>> ---
>> arch/arm/include/asm/crash.h | 5 +++++
>> arch/arm64/include/asm/crash.h | 5 +++++
>> arch/ia64/include/asm/crash.h | 5 +++++
>> arch/m68k/include/asm/crash.h | 5 +++++
>> arch/mips/include/asm/crash.h | 5 +++++
>> arch/parisc/include/asm/crash.h | 5 +++++
>> arch/powerpc/include/asm/crash.h | 5 +++++
>> arch/riscv/include/asm/crash.h | 5 +++++
>> arch/s390/include/asm/crash.h | 5 +++++
>> arch/sh/include/asm/crash.h | 5 +++++
>> include/linux/crash_core.h | 2 ++
>> 11 files changed, 52 insertions(+)
>> create mode 100644 arch/arm/include/asm/crash.h
>> create mode 100644 arch/arm64/include/asm/crash.h
>> create mode 100644 arch/ia64/include/asm/crash.h
>> create mode 100644 arch/m68k/include/asm/crash.h
>> create mode 100644 arch/mips/include/asm/crash.h
>> create mode 100644 arch/parisc/include/asm/crash.h
>> create mode 100644 arch/powerpc/include/asm/crash.h
>> create mode 100644 arch/riscv/include/asm/crash.h
>> create mode 100644 arch/s390/include/asm/crash.h
>> create mode 100644 arch/sh/include/asm/crash.h
>>
>> diff --git a/arch/arm/include/asm/crash.h b/arch/arm/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..385646957d60
>> --- /dev/null
>> +++ b/arch/arm/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_ARM_CRASH_H
>> +#define _ASM_ARM_CRASH_H
>> +
>> +#endif /* _ASM_ARM_CRASH_H */
>> diff --git a/arch/arm64/include/asm/crash.h b/arch/arm64/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..ec8870c1ea49
>> --- /dev/null
>> +++ b/arch/arm64/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_ARM64_CRASH_H
>> +#define _ASM_ARM64_CRASH_H
>> +
>> +#endif /* _ASM_ARM64_CRASH_H */
>> diff --git a/arch/ia64/include/asm/crash.h b/arch/ia64/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..02a457cccda3
>> --- /dev/null
>> +++ b/arch/ia64/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_IA64_CRASH_H
>> +#define _ASM_IA64_CRASH_H
>> +
>> +#endif /* _ASM_IA64_CRASH_H */
>> diff --git a/arch/m68k/include/asm/crash.h b/arch/m68k/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..ba6e412a1267
>> --- /dev/null
>> +++ b/arch/m68k/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_M68K_CRASH_H
>> +#define _ASM_M68K_CRASH_H
>> +
>> +#endif /* _ASM_M68K_CRASH_H */
>> diff --git a/arch/mips/include/asm/crash.h b/arch/mips/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..35872522c574
>> --- /dev/null
>> +++ b/arch/mips/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_MIPS_CRASH_H
>> +#define _ASM_MIPS_CRASH_H
>> +
>> +#endif /* _ASM_MIPS_CRASH_H */
>> diff --git a/arch/parisc/include/asm/crash.h b/arch/parisc/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..96833b727179
>> --- /dev/null
>> +++ b/arch/parisc/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_PARISC_CRASH_H
>> +#define _ASM_PARISC_CRASH_H
>> +
>> +#endif /* _ASM_PARISC_CRASH_H */
>> diff --git a/arch/powerpc/include/asm/crash.h b/arch/powerpc/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..40ce71e56ac1
>> --- /dev/null
>> +++ b/arch/powerpc/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_POWERPC_CRASH_H
>> +#define _ASM_POWERPC_CRASH_H
>> +
>> +#endif /* _ASM_POWERPC_CRASH_H */
>> diff --git a/arch/riscv/include/asm/crash.h b/arch/riscv/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..24f3aea99707
>> --- /dev/null
>> +++ b/arch/riscv/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_RISCV_CRASH_H
>> +#define _ASM_RISCV_CRASH_H
>> +
>> +#endif /* _ASM_RISCV_CRASH_H */
>> diff --git a/arch/s390/include/asm/crash.h b/arch/s390/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..0db16ad4c75f
>> --- /dev/null
>> +++ b/arch/s390/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_S390_CRASH_H
>> +#define _ASM_S390_CRASH_H
>> +
>> +#endif /* _ASM_S390_CRASH_H */
>> diff --git a/arch/sh/include/asm/crash.h b/arch/sh/include/asm/crash.h
>> new file mode 100644
>> index 000000000000..f54e12f88cae
>> --- /dev/null
>> +++ b/arch/sh/include/asm/crash.h
>> @@ -0,0 +1,5 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef _ASM_SH_CRASH_H
>> +#define _ASM_SH_CRASH_H
>> +
>> +#endif /* _ASM_SH_CRASH_H */
>> diff --git a/include/linux/crash_core.h b/include/linux/crash_core.h
>> index de62a722431e..cb0f1916fbf5 100644
>> --- a/include/linux/crash_core.h
>> +++ b/include/linux/crash_core.h
>> @@ -6,6 +6,8 @@
>> #include <linux/elfcore.h>
>> #include <linux/elf.h>
>>
>> +#include <asm/crash.h>
>> +
>> #define CRASH_CORE_NOTE_NAME "CORE"
>> #define CRASH_CORE_NOTE_HEAD_BYTES ALIGN(sizeof(struct elf_note), 4)
>> #define CRASH_CORE_NOTE_NAME_BYTES ALIGN(sizeof(CRASH_CORE_NOTE_NAME), 4)
>> --
>> 2.31.1
>>
>