irqchip/gic-v3: Allow LPIs to be disabled from the command line
authorMarc Zyngier <marc.zyngier@arm.com>
Sun, 25 Feb 2018 11:27:04 +0000 (11:27 +0000)
committerMarc Zyngier <marc.zyngier@arm.com>
Wed, 14 Mar 2018 11:11:29 +0000 (11:11 +0000)
commitf736d65df0acefcb50f7f7c6ad6070e7b954c79a
treee82235f2508b40e3c7727ffb6f7834a96cb2b3bc
parentd6062a6d62c643a06c393745d032da3e6441d4bd
irqchip/gic-v3: Allow LPIs to be disabled from the command line

For most GICv3 implementations, enabling LPIs is a one way switch.
Once they're on, there is no turning back, which completely kills
kexec (pending tables will always be live, and we can't tell the
secondary kernel where they are).

This is really annoying if you plan to use Linux as a bootloader,
as it pretty much guarantees that the secondary kernel won't be
able to use MSIs, and may even see some memory corruption. Bad.

A workaround for this unfortunate situation is to allow the kernel
not to enable LPIs, even if the feature is present in the HW. This
would allow Linux-as-a-bootloader to leave LPIs alone, and let the
secondary kernel to do whatever it wants with them.

Let's introduce a boolean "irqchip.gicv3_nolpi" command line option
that serves that purpose.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Documentation/admin-guide/kernel-parameters.txt
drivers/irqchip/irq-gic-v3.c