On Sun, Dec 1, 2024 at 8:17 PM Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: > > The compiler can fully inline the actual handler function of an interrupt > entry into the .irqentry.text entry point. If such a function contains an > access which has an exception table entry, modpost complains about a > section mismatch: > > WARNING: vmlinux.o(__ex_table+0x447c): Section mismatch in reference ... > > The relocation at __ex_table+0x447c references section ".irqentry.text" > which is not in the list of authorized sections. > > Add .irqentry.text to OTHER_SECTIONS to cure the issue. > > Reported-by: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx> I found the context in LKML. Closes: https://lore.kernel.org/all/20241128111844.GE10431@xxxxxxxxxx/ However, is this still relevant to the mainline kernel? In Linux 5.4.y, I agree this because smp_apic_timer_interrupt() is annotated as __irq_entry: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/arch/x86/kernel/apic/apic.c?id=v5.4.286#n1145 In this mainline kernel, DEFINE_IDTENTRY_SYSVEC() expands to a normal .text function which is explicitly annotated 'noinline'. > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > --- > scripts/mod/modpost.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- a/scripts/mod/modpost.c > +++ b/scripts/mod/modpost.c > @@ -785,7 +785,7 @@ static void check_section(const char *mo > ".ltext", ".ltext.*" > #define OTHER_TEXT_SECTIONS ".ref.text", ".head.text", ".spinlock.text", \ > ".fixup", ".entry.text", ".exception.text", \ > - ".coldtext", ".softirqentry.text" > + ".coldtext", ".softirqentry.text", ".irqentry.text" > > #define ALL_TEXT_SECTIONS ".init.text", ".exit.text", \ > TEXT_SECTIONS, OTHER_TEXT_SECTIONS -- Best Regards Masahiro Yamada