Re: [patch V9 21/39] x86/irq: Convey vector as argument and not in ptregs

From: Thomas Gleixner
Date: Fri May 22 2020 - 15:34:58 EST


Thomas Gleixner <tglx@xxxxxxxxxxxxx> writes:
> + .align 8
> +SYM_CODE_START(irq_entries_start)
> + vector=FIRST_EXTERNAL_VECTOR
> + pos = .
> + .rept (FIRST_SYSTEM_VECTOR - FIRST_EXTERNAL_VECTOR)
> + UNWIND_HINT_IRET_REGS
> + .byte 0x6a, vector
> + jmp common_interrupt
> + .nops (pos + 8) - .

Boris pointed out that .nops requires binutils >=2.31 ... Sigh!

The below delta patch works for the purpose.

Thanks,

tglx

--- a/arch/x86/include/asm/idtentry.h
+++ b/arch/x86/include/asm/idtentry.h
@@ -475,7 +475,9 @@ SYM_CODE_START(irq_entries_start)
UNWIND_HINT_IRET_REGS
.byte 0x6a, vector
jmp asm_common_interrupt
- .nops (pos + 8) - .
+ nop
+ /* Ensure that the above is 8 bytes max */
+ . = pos + 8
pos=pos+8
vector=vector+1
.endr
@@ -490,7 +492,9 @@ SYM_CODE_START(spurious_entries_start)
UNWIND_HINT_IRET_REGS
.byte 0x6a, vector
jmp asm_spurious_interrupt
- .nops (pos + 8) - .
+ nop
+ /* Ensure that the above is 8 bytes max */
+ . = pos + 8
pos=pos+8
vector=vector+1
.endr