]> www.infradead.org Git - users/hch/misc.git/commit
MIPS: Ignore relocs against __ex_table for relocatable kernel
authorXi Ruoyao <xry111@xry111.site>
Wed, 26 Feb 2025 13:28:41 +0000 (21:28 +0800)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Thu, 27 Feb 2025 10:07:50 +0000 (11:07 +0100)
commit6d48ad04075729519f6baaa1dc9e5a3a39d05f53
tree1f2bd3f9f5ec5de20e32d8dd9b26c90c44ce04bb
parent0ad2507d5d93f39619fc42372c347d6006b64319
MIPS: Ignore relocs against __ex_table for relocatable kernel

Since commit 6f2c2f93a190 ("scripts/sorttable: Remove unneeded
Elf_Rel"), sorttable no longer clears relocs against __ex_table,
claiming "it was never used."  But in fact MIPS relocatable kernel had
been implicitly depending on this behavior, so after this commit the
MIPS relocatable kernel has started to spit oops like:

CPU 1 Unable to handle kernel paging request at virtual address 000000fffbbdbff8, epc == ffffffff818f9a6c, ra == ffffffff813ad7d0
... ...
Call Trace:
[<ffffffff818f9a6c>] __raw_copy_from_user+0x48/0x2fc
[<ffffffff813ad7d0>] cp_statx+0x1a0/0x1e0
[<ffffffff813ae528>] do_statx_fd+0xa8/0x118
[<ffffffff813ae670>] sys_statx+0xd8/0xf8
[<ffffffff81156cc8>] syscall_common+0x34/0x58

So ignore those relocs on our own to fix the issue.

Fixes: 6f2c2f93a190 ("scripts/sorttable: Remove unneeded Elf_Rel")
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
arch/mips/boot/tools/relocs.c