• Thomas Gleixner's avatar
    x86/entry: Unbreak __irqentry_text_start/end magic · f0178fc0
    Thomas Gleixner authored
    The entry rework moved interrupt entry code from the irqentry to the
    noinstr section which made the irqentry section empty.
    
    This breaks boundary checks which rely on the __irqentry_text_start/end
    markers to find out whether a function in a stack trace is
    interrupt/exception entry code. This affects the function graph tracer and
    filter_irq_stacks().
    
    As the IDT entry points are all sequentialy emitted this is rather simple
    to unbreak by injecting __irqentry_text_start/end as global labels.
    
    To make this work correctly:
    
      - Remove the IRQENTRY_TEXT section from the x86 linker script
      - Define __irqentry so it breaks the build if it's used
      - Adjust the entry mirroring in PTI
      - Remove the redundant kprobes and unwinder bound checks
    Reported-by: default avatarQian Cai <cai@lca.pw>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    f0178fc0
pti.c 17.5 KB