From 8837cb42f0415295ec53ec04872bbba5dcb43255 Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Mon, 25 May 2015 18:02:32 +0000 Subject: [PATCH] ramips: fix hang on boot on rt305x Fix an upstream regression on 3.18+ that causes rt305x based devices to hang on boot. Fixes #19715. Signed-off-by: Jonas Gorski git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45747 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- ...clearing-the-illegal-access-interrup.patch | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 target/linux/ramips/patches-3.18/064-MIPS-ralink-fix-clearing-the-illegal-access-interrup.patch 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 index 0000000000..8153272308 --- /dev/null +++ b/target/linux/ramips/patches-3.18/064-MIPS-ralink-fix-clearing-the-illegal-access-interrup.patch @@ -0,0 +1,31 @@ +From f5d9bea58b576b50cdc0d7a607646b0849ff79c4 Mon Sep 17 00:00:00 2001 +From: Jonas Gorski +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: [3.18+] +Fixes: a7b7aad383c ("MIPS: ralink: add missing symbol for RALINK_ILL_ACC") +Signed-off-by: Jonas Gorski +--- + 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; + }