mirror of https://gitee.com/openkylin/linux.git
1cf215a5b4
Fix interrupt priority level handling on SH-Mobile ARM. SH-Mobile ARM platforms using multiple interrupt priority levels need this patch to fix a potential dead lock that may occur if multiple interrupts with different levels are pending simultaneously. The default INTC configuration is to use the same priority level for all interrupts, so this issue does not trigger by default. It is however common for board code to override the interrupt priority for certain interrupt sources depending on the application. Without this fix such boards may lock up. In detail, this patch updates the INTC code in entry-macro.S to make sure that the INTLVLA register gets set as expected. To trigger this bug modify the board specific code to adjust the interrupt priority level for the ethernet chip. After changing the priority level simply use flood ping to drown the board with interrupts. This patch applies to INTCA-based processors such as sh7372, sh7377 and sh7372. GIC-based processors are not affected. Suitable for v2.6.37-rc and stable from v2.6.34 to v2.6.36. Cc: stable@kernel.org Signed-off-by: Magnus Damm <damm@opensource.se> Tested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org> |
||
---|---|---|
.. | ||
include/mach | ||
Kconfig | ||
Makefile | ||
Makefile.boot | ||
board-ap4evb.c | ||
board-g3evm.c | ||
board-g4evm.c | ||
clock-sh7367.c | ||
clock-sh7372.c | ||
clock-sh7377.c | ||
clock.c | ||
console.c | ||
intc-sh7367.c | ||
intc-sh7372.c | ||
intc-sh7377.c | ||
pfc-sh7367.c | ||
pfc-sh7372.c | ||
pfc-sh7377.c | ||
pm_runtime.c | ||
setup-sh7367.c | ||
setup-sh7372.c | ||
setup-sh7377.c | ||
timer.c |