From a0c3cd03ce76313a7c461ecb3e70b513a15453f7 Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Mon, 6 Dec 2021 13:07:08 +0000 Subject: [PATCH] x86/build: Move exception tables into __ro_after_init MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Since c/s 79713ed0a94c ("x86: move both exception tables into .rodata") in 2016, we've been (ab)using the fact that .rodata is read/write during early boot, so we can sort the two tables. Now that we have a real __ro_after_init concept, reposition them to better match reality. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- CC: Jan Beulich CC: Roger Pau Monné CC: Wei Liu --- xen/arch/x86/xen.lds.S | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S index 4db5b404e0..ca22e984f8 100644 --- a/xen/arch/x86/xen.lds.S +++ b/xen/arch/x86/xen.lds.S @@ -100,6 +100,18 @@ SECTIONS __ro_after_init_start = .; *(.data.ro_after_init) + + . = ALIGN(8); + /* Exception table */ + __start___ex_table = .; + *(.ex_table) + __stop___ex_table = .; + + /* Pre-exception table */ + __start___pre_ex_table = .; + *(.ex_table.pre) + __stop___pre_ex_table = .; + . = ALIGN(PAGE_SIZE); __ro_after_init_end = .; @@ -129,17 +141,6 @@ SECTIONS *(.note.gnu.build-id) __note_gnu_build_id_end = .; #endif - . = ALIGN(8); - /* Exception table */ - __start___ex_table = .; - *(.ex_table) - __stop___ex_table = .; - - /* Pre-exception table */ - __start___pre_ex_table = .; - *(.ex_table.pre) - __stop___pre_ex_table = .; - #ifdef CONFIG_HAS_VPCI . = ALIGN(POINTER_ALIGN); __start_vpci_array = .; -- 2.30.2