Mailing List Archive

[PATCH 1/4] xen/link: Introduce a common BUGFRAMES definition
Bugframe linkage is identical in all architectures. This is not surprising
given that it is (now) only consumed by common/virtual_region.c

Introduce a common BUGFRAMES define in xen.lds.h ahead of rearranging their
structure.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Wei Liu <wl@xen.org>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
CC: Ross Lagerwall <ross.lagerwall@citrix.com>
---
xen/arch/arm/xen.lds.S | 13 +++----------
xen/arch/ppc/xen.lds.S | 13 +++----------
xen/arch/riscv/xen.lds.S | 13 +++----------
xen/arch/x86/xen.lds.S | 11 +----------
xen/include/xen/xen.lds.h | 11 +++++++++++
5 files changed, 21 insertions(+), 40 deletions(-)

diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index 2266c9536f05..bd884664adf6 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -55,16 +55,9 @@ SECTIONS
. = ALIGN(PAGE_SIZE);
.rodata : {
_srodata = .; /* Read-only data */
- /* Bug frames table */
- __start_bug_frames = .;
- *(.bug_frames.0)
- __stop_bug_frames_0 = .;
- *(.bug_frames.1)
- __stop_bug_frames_1 = .;
- *(.bug_frames.2)
- __stop_bug_frames_2 = .;
- *(.bug_frames.3)
- __stop_bug_frames_3 = .;
+
+ BUGFRAMES
+
*(.rodata)
*(.rodata.*)
*(.data.rel.ro)
diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
index 05b6db272805..ca4d4a2b8adf 100644
--- a/xen/arch/ppc/xen.lds.S
+++ b/xen/arch/ppc/xen.lds.S
@@ -42,16 +42,9 @@ SECTIONS
. = ALIGN(PAGE_SIZE);
.rodata : {
_srodata = .; /* Read-only data */
- /* Bug frames table */
- __start_bug_frames = .;
- *(.bug_frames.0)
- __stop_bug_frames_0 = .;
- *(.bug_frames.1)
- __stop_bug_frames_1 = .;
- *(.bug_frames.2)
- __stop_bug_frames_2 = .;
- *(.bug_frames.3)
- __stop_bug_frames_3 = .;
+
+ BUGFRAMES
+
*(.rodata)
*(.rodata.*)
*(.data.rel.ro)
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index ace6f49c579c..070b19d91503 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -42,16 +42,9 @@ SECTIONS
. = ALIGN(PAGE_SIZE);
.rodata : {
_srodata = .; /* Read-only data */
- /* Bug frames table */
- __start_bug_frames = .;
- *(.bug_frames.0)
- __stop_bug_frames_0 = .;
- *(.bug_frames.1)
- __stop_bug_frames_1 = .;
- *(.bug_frames.2)
- __stop_bug_frames_2 = .;
- *(.bug_frames.3)
- __stop_bug_frames_3 = .;
+
+ BUGFRAMES
+
*(.rodata)
*(.rodata.*)
*(.data.rel.ro)
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 8930e14fc40e..fa4e608f0f97 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -131,16 +131,7 @@ SECTIONS
. = ALIGN(PAGE_SIZE);
__ro_after_init_end = .;

- /* Bug frames table */
- __start_bug_frames = .;
- *(.bug_frames.0)
- __stop_bug_frames_0 = .;
- *(.bug_frames.1)
- __stop_bug_frames_1 = .;
- *(.bug_frames.2)
- __stop_bug_frames_2 = .;
- *(.bug_frames.3)
- __stop_bug_frames_3 = .;
+ BUGFRAMES

*(.rodata)
*(.rodata.*)
diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index 06b7110837a1..decd6db5fc6d 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -104,6 +104,17 @@

/* List of constructs other than *_SECTIONS in alphabetical order. */

+#define BUGFRAMES \
+ __start_bug_frames = .; \
+ *(.bug_frames.0) \
+ __stop_bug_frames_0 = .; \
+ *(.bug_frames.1) \
+ __stop_bug_frames_1 = .; \
+ *(.bug_frames.2) \
+ __stop_bug_frames_2 = .; \
+ *(.bug_frames.3) \
+ __stop_bug_frames_3 = .;
+
#ifdef CONFIG_HYPFS
#define HYPFS_PARAM \
. = ALIGN(POINTER_ALIGN); \
--
2.30.2
Re: [PATCH 1/4] xen/link: Introduce a common BUGFRAMES definition [ In reply to ]
On 18.03.2024 12:04, Andrew Cooper wrote:
> Bugframe linkage is identical in all architectures. This is not surprising
> given that it is (now) only consumed by common/virtual_region.c
>
> Introduce a common BUGFRAMES define in xen.lds.h ahead of rearranging their
> structure.
>
> No functional change.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>