MIPS: Allow vectored interrupt handler to reside everywhere for 64bit
authorThomas Bogendoerfer <tsbogend@alpha.franken.de>
Thu, 21 Dec 2023 12:54:03 +0000 (13:54 +0100)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Sat, 30 Dec 2023 14:36:01 +0000 (15:36 +0100)
commit682fb5be353117b7321f1dfb65b7bb98cbfe59ab
tree719f69c640afc0020af40fa672dccffeb18f9983
parentefe8ee1a8b9a89835dcbbec8cebc9d5a27428914
MIPS: Allow vectored interrupt handler to reside everywhere for 64bit

Setting up vector interrupts worked only with handlers, which resided
in CKSEG0 space. This limits the kernel placement for 64bit platforms.
By patching in the offset into vi_handlers[] instead of the full
handler address, the vectored exception handler can load the
address by itself and jump to it.

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
arch/mips/kernel/genex.S
arch/mips/kernel/traps.c