weird behavior of get/set_fiq_regs()
Holger Schurig
holgerschurig at gmail.com
Mon Jul 6 14:04:45 PDT 2015
> We should probably make the FIQ code depend on !SMP, or at least complain
> if num_online_cpus > 1 and if we're in a schedulable context, because the
> issue you're running into is precisely that.
Oh. Or at least make the set_fiq_reqs depends on #ifndef CONFIG_SMP.
The code in arch/arm/mach-imx/ssi-fiq.S should be SMP safe, because
they don't use set_fiq_regs(), but define places for the variables:
imx_ssi_fiq_start:
ldr r12, .L_imx_ssi_fiq_base
...
.L_imx_ssi_fiq_base:
imx_ssi_fiq_base:
.word 0x0
> Also note that you'll get into hot water if you try to have FIQ handlers
> in module code.
Why? I was under the impression that the assembly code from my *.S
routine get's copied directly after the exception vectors. Why would
it matter if the bytes between myfiq_start and myfiq_end come from a
module or from somewhere else?
More information about the linux-arm-kernel
mailing list