pinctrl/amd: Use regular interrupt instead of chained
authorThomas Gleixner <tglx@linutronix.de>
Tue, 23 May 2017 21:23:32 +0000 (23:23 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 9 Jun 2017 08:51:54 +0000 (10:51 +0200)
commitba714a9c1dea85e0bf2899d02dfeb9c70040427c
tree5088269acaa754db8659f7e6d91cf71ea47a9c77
parent3c2993b8c6143d8a5793746a54eba8f86f95240f
pinctrl/amd: Use regular interrupt instead of chained

The AMD pinctrl driver uses a chained interrupt to demultiplex the GPIO
interrupts. Kevin Vandeventer reported, that his new AMD Ryzen locks up
hard on boot when the AMD pinctrl driver is initialized. The reason is an
interrupt storm. It's not clear whether that's caused by hardware or
firmware or both.

Using chained interrupts on X86 is a dangerous endavour. If a system is
misconfigured or the hardware buggy there is no safety net to catch an
interrupt storm.

Convert the driver to use a regular interrupt for the demultiplex
handler. This allows the interrupt storm detector to catch the malfunction
and lets the system boot up.

This should be backported to stable because it's likely that more users run
into this problem as the AMD Ryzen machines are spreading.

Reported-by: Kevin Vandeventer
Link: https://bugzilla.suse.com/show_bug.cgi?id=1034261
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-amd.c