linux/arch
Thomas Gleixner 633260fa14 x86/irq: Convey vector as argument and not in ptregs
Device interrupts which go through do_IRQ() or the spurious interrupt
handler have their separate entry code on 64 bit for no good reason.

Both 32 and 64 bit transport the vector number through ORIG_[RE]AX in
pt_regs. Further the vector number is forced to fit into an u8 and is
complemented and offset by 0x80 so it's in the signed character
range. Otherwise GAS would expand the pushq to a 5 byte instruction for any
vector > 0x7F.

Treat the vector number like an error code and hand it to the C function as
argument. This allows to get rid of the extra entry code in a later step.

Simplify the error code push magic by implementing the pushq imm8 via a
'.byte 0x6a, vector' sequence so GAS is not able to screw it up. As the
pushq imm8 is sign extending the resulting error code needs to be truncated
to 8 bits in C code.

Originally-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Andy Lutomirski <luto@kernel.org>
Link: https://lore.kernel.org/r/20200521202118.796915981@linutronix.de
2020-06-11 15:15:11 +02:00
..
alpha mmap locking API: convert mmap_sem API comments 2020-06-09 09:39:14 -07:00
arc mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
arm Merge branch 'rwonce/rework' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux 2020-06-10 14:46:54 -07:00
arm64 locking/atomics: Flip fallbacks and instrumentation 2020-06-11 08:03:24 +02:00
c6x This time around we have 4 lines of diff in the core framework, removing a 2020-06-10 11:42:19 -07:00
csky mmap locking API: use coccinelle to convert mmap_sem rwsem call sites 2020-06-09 09:39:14 -07:00
h8300 This time around we have 4 lines of diff in the core framework, removing a 2020-06-10 11:42:19 -07:00
hexagon mmap locking API: use coccinelle to convert mmap_sem rwsem call sites 2020-06-09 09:39:14 -07:00
ia64 mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
m68k This time around we have 4 lines of diff in the core framework, removing a 2020-06-10 11:42:19 -07:00
microblaze mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
mips This time around we have 4 lines of diff in the core framework, removing a 2020-06-10 11:42:19 -07:00
nds32 mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
nios2 mmap locking API: convert mmap_sem API comments 2020-06-09 09:39:14 -07:00
openrisc mmap locking API: convert mmap_sem API comments 2020-06-09 09:39:14 -07:00
parisc maccess: always use strict semantics for probe_kernel_read 2020-06-09 09:39:15 -07:00
powerpc arch/powerpc/mm/pgtable.c: another missed conversion 2020-06-10 14:44:46 -07:00
riscv mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
s390 mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
sh This time around we have 4 lines of diff in the core framework, removing a 2020-06-10 11:42:19 -07:00
sparc arch/sparc/mm/srmmu.c: fix build 2020-06-10 10:35:28 -07:00
um This pull request contains the following changes for UML: 2020-06-10 13:25:40 -07:00
unicore32 This time around we have 4 lines of diff in the core framework, removing a 2020-06-10 11:42:19 -07:00
x86 x86/irq: Convey vector as argument and not in ptregs 2020-06-11 15:15:11 +02:00
xtensa mmap locking API: convert mmap_sem API comments 2020-06-09 09:39:14 -07:00
.gitignore
Kconfig This time around we have 4 lines of diff in the core framework, removing a 2020-06-10 11:42:19 -07:00