x86: ia32: put IRQ stubs into pinned linker section if needed

This changes the ARCH_IRQ_CONNECT() to put the IRQ stubs into
pinned linker section if needed.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This commit is contained in:
Daniel Leung 2021-03-17 13:38:06 -07:00 committed by Kumar Gala
commit fb6a929f97

View file

@ -173,6 +173,12 @@ typedef struct s_isrList {
*/
#define _VECTOR_ARG(irq_p) (-1)
#ifdef CONFIG_LINKER_USE_PINNED_SECTION
#define IRQSTUBS_TEXT_SECTION ".pinned_text.irqstubs"
#else
#define IRQSTUBS_TEXT_SECTION ".text.irqstubs"
#endif
/* Internally this function does a few things:
*
* 1. There is a declaration of the interrupt parameters in the .intList
@ -202,7 +208,7 @@ typedef struct s_isrList {
".long 0\n\t" /* ISR_LIST.dpl */ \
".long 0\n\t" /* ISR_LIST.tss */ \
".popsection\n\t" \
".pushsection .text.irqstubs\n\t" \
".pushsection " IRQSTUBS_TEXT_SECTION "\n\t" \
".global %c[isr]_irq%c[irq]_stub\n\t" \
"%c[isr]_irq%c[irq]_stub:\n\t" \
"pushl %[isr_param]\n\t" \