ramips: fix hang on boot on rt305x
authorJonas Gorski <jogo@openwrt.org>
Mon, 25 May 2015 18:02:32 +0000 (18:02 +0000)
committerJonas Gorski <jogo@openwrt.org>
Mon, 25 May 2015 18:02:32 +0000 (18:02 +0000)
Fix an upstream regression on 3.18+ that causes rt305x based devices
to hang on boot.

Fixes #19715.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 45747

target/linux/ramips/patches-3.18/064-MIPS-ralink-fix-clearing-the-illegal-access-interrup.patch [new file with mode: 0644]

diff --git a/target/linux/ramips/patches-3.18/064-MIPS-ralink-fix-clearing-the-illegal-access-interrup.patch b/target/linux/ramips/patches-3.18/064-MIPS-ralink-fix-clearing-the-illegal-access-interrup.patch
new file mode 100644 (file)
index 0000000..8153272
--- /dev/null
@@ -0,0 +1,31 @@
+From f5d9bea58b576b50cdc0d7a607646b0849ff79c4 Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jogo@openwrt.org>
+Date: Mon, 25 May 2015 16:51:34 +0200
+Subject: [PATCH] MIPS: ralink: fix clearing the illegal access interrupt
+
+Due to a typo the illegal access interrupt is never cleared in by
+the interupt handler, causing an effective deadlock on the first
+illegal access.
+
+This was broken since the code was introduced in 5433acd81e87 ("MIPS:
+ralink: add illegal access driver"), but only exposed when the Kconfig
+symbol was added, thus enabling the code.
+
+Cc: <stable@vger.kernel.org>  [3.18+]
+Fixes: a7b7aad383c ("MIPS: ralink: add missing symbol for RALINK_ILL_ACC")
+Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+---
+ arch/mips/ralink/ill_acc.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/mips/ralink/ill_acc.c
++++ b/arch/mips/ralink/ill_acc.c
+@@ -41,7 +41,7 @@ static irqreturn_t ill_acc_irq_handler(i
+               addr, (type >> ILL_ACC_OFF_S) & ILL_ACC_OFF_M,
+               type & ILL_ACC_LEN_M);
+-      rt_memc_w32(REG_ILL_ACC_TYPE, REG_ILL_ACC_TYPE);
++      rt_memc_w32(ILL_INT_STATUS, REG_ILL_ACC_TYPE);
+       return IRQ_HANDLED;
+ }