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

From: Eric DeVolder
Date: Mon Aug 08 2022 - 11:19:36 EST




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@xxxxxxxxxx>
---
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