From 3cbc525a1edf971f051d84673e7ade5c9675a136 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Sun, 9 Nov 2003 04:03:30 -0800 Subject: [PATCH] [PATCH] PPC32: Fix alignment problem with __ex_table and __bug_table. The __start___ex_table and __start___bug_table symbols could end up pointing a few bytes before the actual __ex_table and __bug_table sections, if the preceding section had an odd length. This led to oopses in some situations. Patch from Sam Ravnborg. --- arch/ppc/kernel/vmlinux.lds.S | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/arch/ppc/kernel/vmlinux.lds.S b/arch/ppc/kernel/vmlinux.lds.S index 95d1bb16b358e..81b95d449a225 100644 --- a/arch/ppc/kernel/vmlinux.lds.S +++ b/arch/ppc/kernel/vmlinux.lds.S @@ -47,13 +47,17 @@ SECTIONS .fixup : { *(.fixup) } - __start___ex_table = .; - __ex_table : { *(__ex_table) } - __stop___ex_table = .; - - __start___bug_table = .; - __bug_table : { *(__bug_table) } - __stop___bug_table = .; + __ex_table : { + __start___ex_table = .; + *(__ex_table) + __stop___ex_table = .; + } + + __bug_table : { + __start___bug_table = .; + *(__bug_table) + __stop___bug_table = .; + } /* Read-write section, merged into data segment: */ . = ALIGN(4096); -- 2.53.0