parisc: Enable -mlong-calls gcc option by default when !CONFIG_MODULES
When building a kernel without module support, the CONFIG_MLONGCALL option needs to be enabled in order to reach symbols which are outside of a 22-bit branch. This patch changes the autodetection in the Kconfig script to always enable CONFIG_MLONGCALL when modules are disabled and uses a far call to preempt_schedule_irq() in intr_do_preempt() to reach the symbol in all cases. Signed-off-by: Helge Deller <deller@gmx.de> Reported-by: kernel test robot <lkp@intel.com> Cc: stable@vger.kernel.org # v5.6+
This commit is contained in:
parent
0aa91f84b1
commit
00e35f2b0e
@ -202,9 +202,8 @@ config PREFETCH
|
|||||||
depends on PA8X00 || PA7200
|
depends on PA8X00 || PA7200
|
||||||
|
|
||||||
config MLONGCALLS
|
config MLONGCALLS
|
||||||
bool "Enable the -mlong-calls compiler option for big kernels"
|
def_bool y if !MODULES || UBSAN || FTRACE
|
||||||
default y if !MODULES || UBSAN || FTRACE
|
bool "Enable the -mlong-calls compiler option for big kernels" if MODULES && !UBSAN && !FTRACE
|
||||||
default n
|
|
||||||
depends on PA8X00
|
depends on PA8X00
|
||||||
help
|
help
|
||||||
If you configure the kernel to include many drivers built-in instead
|
If you configure the kernel to include many drivers built-in instead
|
||||||
|
@ -997,10 +997,17 @@ intr_do_preempt:
|
|||||||
bb,<,n %r20, 31 - PSW_SM_I, intr_restore
|
bb,<,n %r20, 31 - PSW_SM_I, intr_restore
|
||||||
nop
|
nop
|
||||||
|
|
||||||
|
/* ssm PSW_SM_I done later in intr_restore */
|
||||||
|
#ifdef CONFIG_MLONGCALLS
|
||||||
|
ldil L%intr_restore, %r2
|
||||||
|
load32 preempt_schedule_irq, %r1
|
||||||
|
bv %r0(%r1)
|
||||||
|
ldo R%intr_restore(%r2), %r2
|
||||||
|
#else
|
||||||
|
ldil L%intr_restore, %r1
|
||||||
BL preempt_schedule_irq, %r2
|
BL preempt_schedule_irq, %r2
|
||||||
nop
|
ldo R%intr_restore(%r1), %r2
|
||||||
|
#endif
|
||||||
b,n intr_restore /* ssm PSW_SM_I done by intr_restore */
|
|
||||||
#endif /* CONFIG_PREEMPTION */
|
#endif /* CONFIG_PREEMPTION */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user