END(\sym)
  .endm
  
- #ifdef CONFIG_TRACING
- #define trace(sym) trace_##sym
- #define smp_trace(sym) smp_trace_##sym
- 
- .macro trace_apicinterrupt num sym
- apicinterrupt3 \num trace(\sym) smp_trace(\sym)
- .endm
- #else
- .macro trace_apicinterrupt num sym do_sym
- .endm
- #endif
- 
  /* Make sure APIC interrupt handlers end up in the irqentry section: */
 -#if defined(CONFIG_FUNCTION_GRAPH_TRACER) || defined(CONFIG_KASAN)
 -# define PUSH_SECTION_IRQENTRY        .pushsection .irqentry.text, "ax"
 -# define POP_SECTION_IRQENTRY .popsection
 -#else
 -# define PUSH_SECTION_IRQENTRY
 -# define POP_SECTION_IRQENTRY
 -#endif
 +#define PUSH_SECTION_IRQENTRY .pushsection .irqentry.text, "ax"
 +#define POP_SECTION_IRQENTRY  .popsection
  
  .macro apicinterrupt num sym do_sym
  PUSH_SECTION_IRQENTRY
 
  
        clear_page(init_top_pgt);
  
 +      /*
 +       * SME support may update early_pmd_flags to include the memory
 +       * encryption mask, so it needs to be called before anything
 +       * that may generate a page fault.
 +       */
 +      sme_early_init();
 +
        kasan_early_init();
  
-       for (i = 0; i < NUM_EXCEPTION_VECTORS; i++)
-               set_intr_gate(i, early_idt_handler_array[i]);
-       load_idt((const struct desc_ptr *)&idt_descr);
+       idt_setup_early_handler();
  
        copy_bootdata(__va(real_mode_data));