All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] ARM: handle imprecise aborts from firmware in common code
@ 2015-10-15 10:32 ` Lucas Stach
  0 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-10-15 10:32 UTC (permalink / raw)
  To: Russell King
  Cc: Tony Lindgren, Hauke Mehrtens, linux-omap, linux-arm-kernel,
	patchwork-lst

This series implements the handling of a pending imprecise abort left behind
by the bootloader/firmware running before Linux in the common ARM startup code.

It turns pending imprecise aborts that may signal during the first unmasking
of such aborts on the boot CPU into a non-faulting event and warns the user
that the firmware of the machine might be buggy.

Handling this in the common code makes sure that we only ignore already pending
aborts and not those that may happen later during system boot/usage. It also
allows to remove the custom fault handler from the 3 architectures that are
known to have bad firmware/bootloaders.

V2 adapts patch 1 to suggestions from Russell and Hauke and drops former
patch 3 (ARM: mvebu: remove the workaround imprecise abort fault handler)
as it has already been applied.

Regards,
Lucas

Lucas Stach (3):
  ARM: catch pending imprecise abort on unmask
  ARM: OMAP2+: remove custom abort handler for t410
  ARM: BCM5301X: remove workaround imprecise abort fault handler

 arch/arm/mach-bcm/bcm_5301x.c      | 35 -----------------------------------
 arch/arm/mach-omap2/pdata-quirks.c | 29 -----------------------------
 arch/arm/mm/fault.c                | 22 ++++++++++++++++++++++
 arch/arm/mm/fault.h                |  1 +
 arch/arm/mm/mmu.c                  |  3 ++-
 5 files changed, 25 insertions(+), 65 deletions(-)

-- 
2.6.1

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 0/3] ARM: handle imprecise aborts from firmware in common code
@ 2015-10-15 10:32 ` Lucas Stach
  0 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-10-15 10:32 UTC (permalink / raw)
  To: linux-arm-kernel

This series implements the handling of a pending imprecise abort left behind
by the bootloader/firmware running before Linux in the common ARM startup code.

It turns pending imprecise aborts that may signal during the first unmasking
of such aborts on the boot CPU into a non-faulting event and warns the user
that the firmware of the machine might be buggy.

Handling this in the common code makes sure that we only ignore already pending
aborts and not those that may happen later during system boot/usage. It also
allows to remove the custom fault handler from the 3 architectures that are
known to have bad firmware/bootloaders.

V2 adapts patch 1 to suggestions from Russell and Hauke and drops former
patch 3 (ARM: mvebu: remove the workaround imprecise abort fault handler)
as it has already been applied.

Regards,
Lucas

Lucas Stach (3):
  ARM: catch pending imprecise abort on unmask
  ARM: OMAP2+: remove custom abort handler for t410
  ARM: BCM5301X: remove workaround imprecise abort fault handler

 arch/arm/mach-bcm/bcm_5301x.c      | 35 -----------------------------------
 arch/arm/mach-omap2/pdata-quirks.c | 29 -----------------------------
 arch/arm/mm/fault.c                | 22 ++++++++++++++++++++++
 arch/arm/mm/fault.h                |  1 +
 arch/arm/mm/mmu.c                  |  3 ++-
 5 files changed, 25 insertions(+), 65 deletions(-)

-- 
2.6.1

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
  2015-10-15 10:32 ` Lucas Stach
@ 2015-10-15 10:32   ` Lucas Stach
  -1 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-10-15 10:32 UTC (permalink / raw)
  To: Russell King
  Cc: Tony Lindgren, Hauke Mehrtens, linux-omap, linux-arm-kernel,
	patchwork-lst

Install a non-faulting handler just before unmasking imprecise aborts
and switch back to the regular one after unmasking is done.

This catches any pending imprecise abort that the firmware/bootloader
may have left behind that would normally crash the kernel at that point.
As there are apparently a lot of bootlaoders out there that do such a
thing it makes sense to handle it in the common startup code.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
v2:
- move temporary fault handler swapping into fault.c to hide it from
  other parts of the kernel
- print FSR, when warning user about bad firmware/bootloader
---
 arch/arm/mm/fault.c | 22 ++++++++++++++++++++++
 arch/arm/mm/fault.h |  1 +
 arch/arm/mm/mmu.c   |  3 ++-
 3 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index 0d629b8f973f..daafcf121ce0 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -593,6 +593,28 @@ do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs)
 	arm_notify_die("", regs, &info, ifsr, 0);
 }
 
+/*
+ * Abort handler to be used only during first unmasking of asynchronous aborts
+ * on the boot CPU. This makes sure that the machine will not die if the
+ * firmware/bootloader left an imprecise abort pending for us to trip over.
+ */
+static int __init early_abort_handler(unsigned long addr, unsigned int fsr,
+				      struct pt_regs *regs)
+{
+	pr_warn("Hit pending asynchronous external abort (FSR=0x%08x) during "
+		"first unmask, this is most likely caused by a "
+		"firmware/bootloader bug.\n", fsr);
+
+	return 0;
+}
+
+void __init early_abt_enable(void)
+{
+	fsr_info[22].fn = early_abort_handler;
+	local_abt_enable();
+	fsr_info[22].fn = do_bad;
+}
+
 #ifndef CONFIG_ARM_LPAE
 static int __init exceptions_init(void)
 {
diff --git a/arch/arm/mm/fault.h b/arch/arm/mm/fault.h
index cf08bdfbe0d6..05ec5e0df32d 100644
--- a/arch/arm/mm/fault.h
+++ b/arch/arm/mm/fault.h
@@ -24,5 +24,6 @@ static inline int fsr_fs(unsigned int fsr)
 
 void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
 unsigned long search_exception_table(unsigned long addr);
+void early_abt_enable(void);
 
 #endif	/* __ARCH_ARM_FAULT_H */
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index f65a6f344b6d..4867f5daf82c 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -38,6 +38,7 @@
 #include <asm/mach/pci.h>
 #include <asm/fixmap.h>
 
+#include "fault.h"
 #include "mm.h"
 #include "tcm.h"
 
@@ -1365,7 +1366,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
 	flush_cache_all();
 
 	/* Enable asynchronous aborts */
-	local_abt_enable();
+	early_abt_enable();
 }
 
 static void __init kmap_init(void)
-- 
2.6.1

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
@ 2015-10-15 10:32   ` Lucas Stach
  0 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-10-15 10:32 UTC (permalink / raw)
  To: linux-arm-kernel

Install a non-faulting handler just before unmasking imprecise aborts
and switch back to the regular one after unmasking is done.

This catches any pending imprecise abort that the firmware/bootloader
may have left behind that would normally crash the kernel at that point.
As there are apparently a lot of bootlaoders out there that do such a
thing it makes sense to handle it in the common startup code.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
v2:
- move temporary fault handler swapping into fault.c to hide it from
  other parts of the kernel
- print FSR, when warning user about bad firmware/bootloader
---
 arch/arm/mm/fault.c | 22 ++++++++++++++++++++++
 arch/arm/mm/fault.h |  1 +
 arch/arm/mm/mmu.c   |  3 ++-
 3 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index 0d629b8f973f..daafcf121ce0 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -593,6 +593,28 @@ do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs)
 	arm_notify_die("", regs, &info, ifsr, 0);
 }
 
+/*
+ * Abort handler to be used only during first unmasking of asynchronous aborts
+ * on the boot CPU. This makes sure that the machine will not die if the
+ * firmware/bootloader left an imprecise abort pending for us to trip over.
+ */
+static int __init early_abort_handler(unsigned long addr, unsigned int fsr,
+				      struct pt_regs *regs)
+{
+	pr_warn("Hit pending asynchronous external abort (FSR=0x%08x) during "
+		"first unmask, this is most likely caused by a "
+		"firmware/bootloader bug.\n", fsr);
+
+	return 0;
+}
+
+void __init early_abt_enable(void)
+{
+	fsr_info[22].fn = early_abort_handler;
+	local_abt_enable();
+	fsr_info[22].fn = do_bad;
+}
+
 #ifndef CONFIG_ARM_LPAE
 static int __init exceptions_init(void)
 {
diff --git a/arch/arm/mm/fault.h b/arch/arm/mm/fault.h
index cf08bdfbe0d6..05ec5e0df32d 100644
--- a/arch/arm/mm/fault.h
+++ b/arch/arm/mm/fault.h
@@ -24,5 +24,6 @@ static inline int fsr_fs(unsigned int fsr)
 
 void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
 unsigned long search_exception_table(unsigned long addr);
+void early_abt_enable(void);
 
 #endif	/* __ARCH_ARM_FAULT_H */
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index f65a6f344b6d..4867f5daf82c 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -38,6 +38,7 @@
 #include <asm/mach/pci.h>
 #include <asm/fixmap.h>
 
+#include "fault.h"
 #include "mm.h"
 #include "tcm.h"
 
@@ -1365,7 +1366,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
 	flush_cache_all();
 
 	/* Enable asynchronous aborts */
-	local_abt_enable();
+	early_abt_enable();
 }
 
 static void __init kmap_init(void)
-- 
2.6.1

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v2 2/3] ARM: OMAP2+: remove custom abort handler for t410
  2015-10-15 10:32 ` Lucas Stach
@ 2015-10-15 10:32   ` Lucas Stach
  -1 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-10-15 10:32 UTC (permalink / raw)
  To: Russell King
  Cc: Tony Lindgren, Hauke Mehrtens, linux-omap, linux-arm-kernel,
	patchwork-lst

This is not needed anymore. Handling a potentially pending imprecise external
abort left behind by the bootloader is now done in a slightly safer way inside
the common ARM startup code.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap2/pdata-quirks.c | 29 -----------------------------
 1 file changed, 29 deletions(-)

diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index ea56397599c2..3a2bc2a88db4 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -24,9 +24,6 @@
 #include <linux/platform_data/iommu-omap.h>
 #include <linux/platform_data/wkup_m3.h>
 
-#include <asm/siginfo.h>
-#include <asm/signal.h>
-
 #include "common.h"
 #include "common-board-devices.h"
 #include "dss-common.h"
@@ -385,29 +382,6 @@ static void __init omap3_pandora_legacy_init(void)
 }
 #endif /* CONFIG_ARCH_OMAP3 */
 
-#ifdef CONFIG_SOC_TI81XX
-static int fault_fixed_up;
-
-static int t410_abort_handler(unsigned long addr, unsigned int fsr,
-			      struct pt_regs *regs)
-{
-	if ((fsr == 0x406 || fsr == 0xc06) && !fault_fixed_up) {
-		pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
-			addr, fsr);
-		fault_fixed_up = 1;
-		return 0;
-	}
-
-	return 1;
-}
-
-static void __init t410_abort_init(void)
-{
-	hook_fault_code(16 + 6, t410_abort_handler, SIGBUS, BUS_OBJERR,
-			"imprecise external abort");
-}
-#endif
-
 #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
 static struct iommu_platform_data omap4_iommu_pdata = {
 	.reset_name = "mmu_cache",
@@ -536,9 +510,6 @@ static struct pdata_init pdata_quirks[] __initdata = {
 	{ "openpandora,omap3-pandora-600mhz", omap3_pandora_legacy_init, },
 	{ "openpandora,omap3-pandora-1ghz", omap3_pandora_legacy_init, },
 #endif
-#ifdef CONFIG_SOC_TI81XX
-	{ "hp,t410", t410_abort_init, },
-#endif
 #ifdef CONFIG_SOC_OMAP5
 	{ "ti,omap5-uevm", omap5_uevm_legacy_init, },
 #endif
-- 
2.6.1

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v2 2/3] ARM: OMAP2+: remove custom abort handler for t410
@ 2015-10-15 10:32   ` Lucas Stach
  0 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-10-15 10:32 UTC (permalink / raw)
  To: linux-arm-kernel

This is not needed anymore. Handling a potentially pending imprecise external
abort left behind by the bootloader is now done in a slightly safer way inside
the common ARM startup code.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap2/pdata-quirks.c | 29 -----------------------------
 1 file changed, 29 deletions(-)

diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index ea56397599c2..3a2bc2a88db4 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -24,9 +24,6 @@
 #include <linux/platform_data/iommu-omap.h>
 #include <linux/platform_data/wkup_m3.h>
 
-#include <asm/siginfo.h>
-#include <asm/signal.h>
-
 #include "common.h"
 #include "common-board-devices.h"
 #include "dss-common.h"
@@ -385,29 +382,6 @@ static void __init omap3_pandora_legacy_init(void)
 }
 #endif /* CONFIG_ARCH_OMAP3 */
 
-#ifdef CONFIG_SOC_TI81XX
-static int fault_fixed_up;
-
-static int t410_abort_handler(unsigned long addr, unsigned int fsr,
-			      struct pt_regs *regs)
-{
-	if ((fsr == 0x406 || fsr == 0xc06) && !fault_fixed_up) {
-		pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
-			addr, fsr);
-		fault_fixed_up = 1;
-		return 0;
-	}
-
-	return 1;
-}
-
-static void __init t410_abort_init(void)
-{
-	hook_fault_code(16 + 6, t410_abort_handler, SIGBUS, BUS_OBJERR,
-			"imprecise external abort");
-}
-#endif
-
 #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
 static struct iommu_platform_data omap4_iommu_pdata = {
 	.reset_name = "mmu_cache",
@@ -536,9 +510,6 @@ static struct pdata_init pdata_quirks[] __initdata = {
 	{ "openpandora,omap3-pandora-600mhz", omap3_pandora_legacy_init, },
 	{ "openpandora,omap3-pandora-1ghz", omap3_pandora_legacy_init, },
 #endif
-#ifdef CONFIG_SOC_TI81XX
-	{ "hp,t410", t410_abort_init, },
-#endif
 #ifdef CONFIG_SOC_OMAP5
 	{ "ti,omap5-uevm", omap5_uevm_legacy_init, },
 #endif
-- 
2.6.1

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v2 3/3] ARM: BCM5301X: remove workaround imprecise abort fault handler
  2015-10-15 10:32 ` Lucas Stach
@ 2015-10-15 10:32   ` Lucas Stach
  -1 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-10-15 10:32 UTC (permalink / raw)
  To: Russell King
  Cc: Tony Lindgren, Hauke Mehrtens, linux-omap, linux-arm-kernel,
	patchwork-lst

This is not needed anymore. Handling a potentially pending imprecise external
abort left behind by the bootloader is now done in a slightly safer way inside
the common ARM startup code.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 arch/arm/mach-bcm/bcm_5301x.c | 35 -----------------------------------
 1 file changed, 35 deletions(-)

diff --git a/arch/arm/mach-bcm/bcm_5301x.c b/arch/arm/mach-bcm/bcm_5301x.c
index 5478fe6bcce6..c8830a2b0d60 100644
--- a/arch/arm/mach-bcm/bcm_5301x.c
+++ b/arch/arm/mach-bcm/bcm_5301x.c
@@ -9,40 +9,6 @@
 #include <asm/hardware/cache-l2x0.h>
 
 #include <asm/mach/arch.h>
-#include <asm/siginfo.h>
-#include <asm/signal.h>
-
-
-static bool first_fault = true;
-
-static int bcm5301x_abort_handler(unsigned long addr, unsigned int fsr,
-				 struct pt_regs *regs)
-{
-	if ((fsr == 0x1406 || fsr == 0x1c06) && first_fault) {
-		first_fault = false;
-
-		/*
-		 * These faults with codes 0x1406 (BCM4709) or 0x1c06 happens
-		 * for no good reason, possibly left over from the CFE boot
-		 * loader.
-		 */
-		pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
-			addr, fsr);
-
-		/* Returning non-zero causes fault display and panic */
-		return 0;
-	}
-
-	/* Others should cause a fault */
-	return 1;
-}
-
-static void __init bcm5301x_init_early(void)
-{
-	/* Install our hook */
-	hook_fault_code(16 + 6, bcm5301x_abort_handler, SIGBUS, BUS_OBJERR,
-			"imprecise external abort");
-}
 
 static const char *const bcm5301x_dt_compat[] __initconst = {
 	"brcm,bcm4708",
@@ -52,6 +18,5 @@ static const char *const bcm5301x_dt_compat[] __initconst = {
 DT_MACHINE_START(BCM5301X, "BCM5301X")
 	.l2c_aux_val	= 0,
 	.l2c_aux_mask	= ~0,
-	.init_early	= bcm5301x_init_early,
 	.dt_compat	= bcm5301x_dt_compat,
 MACHINE_END
-- 
2.6.1

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v2 3/3] ARM: BCM5301X: remove workaround imprecise abort fault handler
@ 2015-10-15 10:32   ` Lucas Stach
  0 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-10-15 10:32 UTC (permalink / raw)
  To: linux-arm-kernel

This is not needed anymore. Handling a potentially pending imprecise external
abort left behind by the bootloader is now done in a slightly safer way inside
the common ARM startup code.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 arch/arm/mach-bcm/bcm_5301x.c | 35 -----------------------------------
 1 file changed, 35 deletions(-)

diff --git a/arch/arm/mach-bcm/bcm_5301x.c b/arch/arm/mach-bcm/bcm_5301x.c
index 5478fe6bcce6..c8830a2b0d60 100644
--- a/arch/arm/mach-bcm/bcm_5301x.c
+++ b/arch/arm/mach-bcm/bcm_5301x.c
@@ -9,40 +9,6 @@
 #include <asm/hardware/cache-l2x0.h>
 
 #include <asm/mach/arch.h>
-#include <asm/siginfo.h>
-#include <asm/signal.h>
-
-
-static bool first_fault = true;
-
-static int bcm5301x_abort_handler(unsigned long addr, unsigned int fsr,
-				 struct pt_regs *regs)
-{
-	if ((fsr == 0x1406 || fsr == 0x1c06) && first_fault) {
-		first_fault = false;
-
-		/*
-		 * These faults with codes 0x1406 (BCM4709) or 0x1c06 happens
-		 * for no good reason, possibly left over from the CFE boot
-		 * loader.
-		 */
-		pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
-			addr, fsr);
-
-		/* Returning non-zero causes fault display and panic */
-		return 0;
-	}
-
-	/* Others should cause a fault */
-	return 1;
-}
-
-static void __init bcm5301x_init_early(void)
-{
-	/* Install our hook */
-	hook_fault_code(16 + 6, bcm5301x_abort_handler, SIGBUS, BUS_OBJERR,
-			"imprecise external abort");
-}
 
 static const char *const bcm5301x_dt_compat[] __initconst = {
 	"brcm,bcm4708",
@@ -52,6 +18,5 @@ static const char *const bcm5301x_dt_compat[] __initconst = {
 DT_MACHINE_START(BCM5301X, "BCM5301X")
 	.l2c_aux_val	= 0,
 	.l2c_aux_mask	= ~0,
-	.init_early	= bcm5301x_init_early,
 	.dt_compat	= bcm5301x_dt_compat,
 MACHINE_END
-- 
2.6.1

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
  2015-10-15 10:32   ` Lucas Stach
@ 2015-10-15 15:32     ` Russell King - ARM Linux
  -1 siblings, 0 replies; 30+ messages in thread
From: Russell King - ARM Linux @ 2015-10-15 15:32 UTC (permalink / raw)
  To: Lucas Stach
  Cc: Tony Lindgren, Hauke Mehrtens, linux-omap, linux-arm-kernel,
	patchwork-lst

On Thu, Oct 15, 2015 at 12:32:20PM +0200, Lucas Stach wrote:
> Install a non-faulting handler just before unmasking imprecise aborts
> and switch back to the regular one after unmasking is done.
> 
> This catches any pending imprecise abort that the firmware/bootloader
> may have left behind that would normally crash the kernel at that point.
> As there are apparently a lot of bootlaoders out there that do such a
> thing it makes sense to handle it in the common startup code.
> 
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>

Much better.  Please feel free to add it to the patch system, thanks.

I think, given that the original seems to be breaking platforms, this
patch needs to go into -rc kernels, right?

-- 
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
@ 2015-10-15 15:32     ` Russell King - ARM Linux
  0 siblings, 0 replies; 30+ messages in thread
From: Russell King - ARM Linux @ 2015-10-15 15:32 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Oct 15, 2015 at 12:32:20PM +0200, Lucas Stach wrote:
> Install a non-faulting handler just before unmasking imprecise aborts
> and switch back to the regular one after unmasking is done.
> 
> This catches any pending imprecise abort that the firmware/bootloader
> may have left behind that would normally crash the kernel at that point.
> As there are apparently a lot of bootlaoders out there that do such a
> thing it makes sense to handle it in the common startup code.
> 
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>

Much better.  Please feel free to add it to the patch system, thanks.

I think, given that the original seems to be breaking platforms, this
patch needs to go into -rc kernels, right?

-- 
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
  2015-10-15 15:32     ` Russell King - ARM Linux
@ 2015-10-15 15:39       ` Tony Lindgren
  -1 siblings, 0 replies; 30+ messages in thread
From: Tony Lindgren @ 2015-10-15 15:39 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Hauke Mehrtens, linux-omap, patchwork-lst, linux-arm-kernel, Lucas Stach

* Russell King - ARM Linux <linux@arm.linux.org.uk> [151015 08:37]:
> On Thu, Oct 15, 2015 at 12:32:20PM +0200, Lucas Stach wrote:
> > Install a non-faulting handler just before unmasking imprecise aborts
> > and switch back to the regular one after unmasking is done.
> > 
> > This catches any pending imprecise abort that the firmware/bootloader
> > may have left behind that would normally crash the kernel at that point.
> > As there are apparently a lot of bootlaoders out there that do such a
> > thing it makes sense to handle it in the common startup code.
> > 
> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> 
> Much better.  Please feel free to add it to the patch system, thanks.
> 
> I think, given that the original seems to be breaking platforms, this
> patch needs to go into -rc kernels, right?

Hmm do we still see a trace where the issue happened though with this
one?

What I though wes something pending from the bootloader, turned out
to be a bogus SRAM init code that I was able to easily fix with the
trace.

Regards,

Tony

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
@ 2015-10-15 15:39       ` Tony Lindgren
  0 siblings, 0 replies; 30+ messages in thread
From: Tony Lindgren @ 2015-10-15 15:39 UTC (permalink / raw)
  To: linux-arm-kernel

* Russell King - ARM Linux <linux@arm.linux.org.uk> [151015 08:37]:
> On Thu, Oct 15, 2015 at 12:32:20PM +0200, Lucas Stach wrote:
> > Install a non-faulting handler just before unmasking imprecise aborts
> > and switch back to the regular one after unmasking is done.
> > 
> > This catches any pending imprecise abort that the firmware/bootloader
> > may have left behind that would normally crash the kernel at that point.
> > As there are apparently a lot of bootlaoders out there that do such a
> > thing it makes sense to handle it in the common startup code.
> > 
> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> 
> Much better.  Please feel free to add it to the patch system, thanks.
> 
> I think, given that the original seems to be breaking platforms, this
> patch needs to go into -rc kernels, right?

Hmm do we still see a trace where the issue happened though with this
one?

What I though wes something pending from the bootloader, turned out
to be a bogus SRAM init code that I was able to easily fix with the
trace.

Regards,

Tony

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
  2015-10-15 15:39       ` Tony Lindgren
@ 2015-10-15 16:06         ` Russell King - ARM Linux
  -1 siblings, 0 replies; 30+ messages in thread
From: Russell King - ARM Linux @ 2015-10-15 16:06 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Hauke Mehrtens, linux-omap, patchwork-lst, linux-arm-kernel, Lucas Stach

On Thu, Oct 15, 2015 at 08:39:15AM -0700, Tony Lindgren wrote:
> * Russell King - ARM Linux <linux@arm.linux.org.uk> [151015 08:37]:
> > On Thu, Oct 15, 2015 at 12:32:20PM +0200, Lucas Stach wrote:
> > > Install a non-faulting handler just before unmasking imprecise aborts
> > > and switch back to the regular one after unmasking is done.
> > > 
> > > This catches any pending imprecise abort that the firmware/bootloader
> > > may have left behind that would normally crash the kernel at that point.
> > > As there are apparently a lot of bootlaoders out there that do such a
> > > thing it makes sense to handle it in the common startup code.
> > > 
> > > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> > 
> > Much better.  Please feel free to add it to the patch system, thanks.
> > 
> > I think, given that the original seems to be breaking platforms, this
> > patch needs to go into -rc kernels, right?
> 
> Hmm do we still see a trace where the issue happened though with this
> one?

That's not the intention of this specific patch.

This is solely to detect the bootloader induced imprecise exception,
nothing more.  A backtrace for that won't be useful in any shape or
form - in fact, the backtrace will be well known (it'll be from the
site where the imprecise exceptions are unmasked.)

Any imprecise exception which happens after this will be handled in
the normal way: it'll raise a kernel oops, and that will have all the
details that a kernel oops normally has.

The difference is, rather than the boot loader provoking the kernel to
oops at this point, we're able to report the event and continue on.

-- 
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
@ 2015-10-15 16:06         ` Russell King - ARM Linux
  0 siblings, 0 replies; 30+ messages in thread
From: Russell King - ARM Linux @ 2015-10-15 16:06 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Oct 15, 2015 at 08:39:15AM -0700, Tony Lindgren wrote:
> * Russell King - ARM Linux <linux@arm.linux.org.uk> [151015 08:37]:
> > On Thu, Oct 15, 2015 at 12:32:20PM +0200, Lucas Stach wrote:
> > > Install a non-faulting handler just before unmasking imprecise aborts
> > > and switch back to the regular one after unmasking is done.
> > > 
> > > This catches any pending imprecise abort that the firmware/bootloader
> > > may have left behind that would normally crash the kernel at that point.
> > > As there are apparently a lot of bootlaoders out there that do such a
> > > thing it makes sense to handle it in the common startup code.
> > > 
> > > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> > 
> > Much better.  Please feel free to add it to the patch system, thanks.
> > 
> > I think, given that the original seems to be breaking platforms, this
> > patch needs to go into -rc kernels, right?
> 
> Hmm do we still see a trace where the issue happened though with this
> one?

That's not the intention of this specific patch.

This is solely to detect the bootloader induced imprecise exception,
nothing more.  A backtrace for that won't be useful in any shape or
form - in fact, the backtrace will be well known (it'll be from the
site where the imprecise exceptions are unmasked.)

Any imprecise exception which happens after this will be handled in
the normal way: it'll raise a kernel oops, and that will have all the
details that a kernel oops normally has.

The difference is, rather than the boot loader provoking the kernel to
oops at this point, we're able to report the event and continue on.

-- 
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
  2015-10-15 16:06         ` Russell King - ARM Linux
@ 2015-10-15 16:23           ` Tony Lindgren
  -1 siblings, 0 replies; 30+ messages in thread
From: Tony Lindgren @ 2015-10-15 16:23 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Hauke Mehrtens, linux-omap, patchwork-lst, linux-arm-kernel, Lucas Stach

* Russell King - ARM Linux <linux@arm.linux.org.uk> [151015 09:11]:
> On Thu, Oct 15, 2015 at 08:39:15AM -0700, Tony Lindgren wrote:
> > * Russell King - ARM Linux <linux@arm.linux.org.uk> [151015 08:37]:
> > > On Thu, Oct 15, 2015 at 12:32:20PM +0200, Lucas Stach wrote:
> > > > Install a non-faulting handler just before unmasking imprecise aborts
> > > > and switch back to the regular one after unmasking is done.
> > > > 
> > > > This catches any pending imprecise abort that the firmware/bootloader
> > > > may have left behind that would normally crash the kernel at that point.
> > > > As there are apparently a lot of bootlaoders out there that do such a
> > > > thing it makes sense to handle it in the common startup code.
> > > > 
> > > > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> > > 
> > > Much better.  Please feel free to add it to the patch system, thanks.
> > > 
> > > I think, given that the original seems to be breaking platforms, this
> > > patch needs to go into -rc kernels, right?
> > 
> > Hmm do we still see a trace where the issue happened though with this
> > one?
> 
> That's not the intention of this specific patch.
> 
> This is solely to detect the bootloader induced imprecise exception,
> nothing more.  A backtrace for that won't be useful in any shape or
> form - in fact, the backtrace will be well known (it'll be from the
> site where the imprecise exceptions are unmasked.)
> 
> Any imprecise exception which happens after this will be handled in
> the normal way: it'll raise a kernel oops, and that will have all the
> details that a kernel oops normally has.

OK makes sense.

> The difference is, rather than the boot loader provoking the kernel to
> oops at this point, we're able to report the event and continue on.

OK

Tony

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
@ 2015-10-15 16:23           ` Tony Lindgren
  0 siblings, 0 replies; 30+ messages in thread
From: Tony Lindgren @ 2015-10-15 16:23 UTC (permalink / raw)
  To: linux-arm-kernel

* Russell King - ARM Linux <linux@arm.linux.org.uk> [151015 09:11]:
> On Thu, Oct 15, 2015 at 08:39:15AM -0700, Tony Lindgren wrote:
> > * Russell King - ARM Linux <linux@arm.linux.org.uk> [151015 08:37]:
> > > On Thu, Oct 15, 2015 at 12:32:20PM +0200, Lucas Stach wrote:
> > > > Install a non-faulting handler just before unmasking imprecise aborts
> > > > and switch back to the regular one after unmasking is done.
> > > > 
> > > > This catches any pending imprecise abort that the firmware/bootloader
> > > > may have left behind that would normally crash the kernel at that point.
> > > > As there are apparently a lot of bootlaoders out there that do such a
> > > > thing it makes sense to handle it in the common startup code.
> > > > 
> > > > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> > > 
> > > Much better.  Please feel free to add it to the patch system, thanks.
> > > 
> > > I think, given that the original seems to be breaking platforms, this
> > > patch needs to go into -rc kernels, right?
> > 
> > Hmm do we still see a trace where the issue happened though with this
> > one?
> 
> That's not the intention of this specific patch.
> 
> This is solely to detect the bootloader induced imprecise exception,
> nothing more.  A backtrace for that won't be useful in any shape or
> form - in fact, the backtrace will be well known (it'll be from the
> site where the imprecise exceptions are unmasked.)
> 
> Any imprecise exception which happens after this will be handled in
> the normal way: it'll raise a kernel oops, and that will have all the
> details that a kernel oops normally has.

OK makes sense.

> The difference is, rather than the boot loader provoking the kernel to
> oops at this point, we're able to report the event and continue on.

OK

Tony

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
  2015-10-15 15:32     ` Russell King - ARM Linux
@ 2015-10-16  8:21       ` Lucas Stach
  -1 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-10-16  8:21 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Tony Lindgren, Hauke Mehrtens, linux-omap, linux-arm-kernel,
	patchwork-lst

Am Donnerstag, den 15.10.2015, 16:32 +0100 schrieb Russell King - ARM
Linux:
> On Thu, Oct 15, 2015 at 12:32:20PM +0200, Lucas Stach wrote:
> > Install a non-faulting handler just before unmasking imprecise aborts
> > and switch back to the regular one after unmasking is done.
> > 
> > This catches any pending imprecise abort that the firmware/bootloader
> > may have left behind that would normally crash the kernel at that point.
> > As there are apparently a lot of bootlaoders out there that do such a
> > thing it makes sense to handle it in the common startup code.
> > 
> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> 
> Much better.  Please feel free to add it to the patch system, thanks.
> 
Do you feel like taking patches 2 and 3 through your tree too, given
that they are already acked by the platform maintainers, or should they
pick them up themselves?

> I think, given that the original seems to be breaking platforms, this
> patch needs to go into -rc kernels, right?
> 
No, the original patch is only queued for 4.4, so the regression is only
in -next. This patch only needs to make it into your 4.4 pull request.

Thanks,
Lucas
-- 
Pengutronix e.K.             | Lucas Stach                 |
Industrial Linux Solutions   | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
@ 2015-10-16  8:21       ` Lucas Stach
  0 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-10-16  8:21 UTC (permalink / raw)
  To: linux-arm-kernel

Am Donnerstag, den 15.10.2015, 16:32 +0100 schrieb Russell King - ARM
Linux:
> On Thu, Oct 15, 2015 at 12:32:20PM +0200, Lucas Stach wrote:
> > Install a non-faulting handler just before unmasking imprecise aborts
> > and switch back to the regular one after unmasking is done.
> > 
> > This catches any pending imprecise abort that the firmware/bootloader
> > may have left behind that would normally crash the kernel at that point.
> > As there are apparently a lot of bootlaoders out there that do such a
> > thing it makes sense to handle it in the common startup code.
> > 
> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> 
> Much better.  Please feel free to add it to the patch system, thanks.
> 
Do you feel like taking patches 2 and 3 through your tree too, given
that they are already acked by the platform maintainers, or should they
pick them up themselves?

> I think, given that the original seems to be breaking platforms, this
> patch needs to go into -rc kernels, right?
> 
No, the original patch is only queued for 4.4, so the regression is only
in -next. This patch only needs to make it into your 4.4 pull request.

Thanks,
Lucas
-- 
Pengutronix e.K.             | Lucas Stach                 |
Industrial Linux Solutions   | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2 0/3] ARM: handle imprecise aborts from firmware in common code
  2015-10-15 10:32 ` Lucas Stach
@ 2015-10-16 19:11   ` Tyler Baker
  -1 siblings, 0 replies; 30+ messages in thread
From: Tyler Baker @ 2015-10-16 19:11 UTC (permalink / raw)
  To: Lucas Stach
  Cc: Russell King, Tony Lindgren, Hauke Mehrtens, patchwork-lst,
	linux-omap, linux-arm-kernel

Hi Lucas,

On 15 October 2015 at 03:32, Lucas Stach <l.stach@pengutronix.de> wrote:
> This series implements the handling of a pending imprecise abort left behind
> by the bootloader/firmware running before Linux in the common ARM startup code.
>
> It turns pending imprecise aborts that may signal during the first unmasking
> of such aborts on the boot CPU into a non-faulting event and warns the user
> that the firmware of the machine might be buggy.
>
> Handling this in the common code makes sure that we only ignore already pending
> aborts and not those that may happen later during system boot/usage. It also
> allows to remove the custom fault handler from the 3 architectures that are
> known to have bad firmware/bootloaders.
>
> V2 adapts patch 1 to suggestions from Russell and Hauke and drops former
> patch 3 (ARM: mvebu: remove the workaround imprecise abort fault handler)
> as it has already been applied.

I have build and boot tested the three patches in this series on top
of next-20151016 with the kernelci.org system[1][2]. It found no new
build/boot regressions and also I can confirm it fixes the issue
reported here[3].

Tested-by: Tyler Baker <tyler.baker@linaro.org>

Cheers,

Tyler

[1] http://kernelci.org/boot/all/job/tbaker/kernel/v4.3-rc5-8587-g6890e51b69b2/
[2] http://kernelci.org/build/tbaker/kernel/v4.3-rc5-8587-g6890e51b69b2/
[3] http://www.spinics.net/lists/arm-kernel/msg451280.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 0/3] ARM: handle imprecise aborts from firmware in common code
@ 2015-10-16 19:11   ` Tyler Baker
  0 siblings, 0 replies; 30+ messages in thread
From: Tyler Baker @ 2015-10-16 19:11 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Lucas,

On 15 October 2015 at 03:32, Lucas Stach <l.stach@pengutronix.de> wrote:
> This series implements the handling of a pending imprecise abort left behind
> by the bootloader/firmware running before Linux in the common ARM startup code.
>
> It turns pending imprecise aborts that may signal during the first unmasking
> of such aborts on the boot CPU into a non-faulting event and warns the user
> that the firmware of the machine might be buggy.
>
> Handling this in the common code makes sure that we only ignore already pending
> aborts and not those that may happen later during system boot/usage. It also
> allows to remove the custom fault handler from the 3 architectures that are
> known to have bad firmware/bootloaders.
>
> V2 adapts patch 1 to suggestions from Russell and Hauke and drops former
> patch 3 (ARM: mvebu: remove the workaround imprecise abort fault handler)
> as it has already been applied.

I have build and boot tested the three patches in this series on top
of next-20151016 with the kernelci.org system[1][2]. It found no new
build/boot regressions and also I can confirm it fixes the issue
reported here[3].

Tested-by: Tyler Baker <tyler.baker@linaro.org>

Cheers,

Tyler

[1] http://kernelci.org/boot/all/job/tbaker/kernel/v4.3-rc5-8587-g6890e51b69b2/
[2] http://kernelci.org/build/tbaker/kernel/v4.3-rc5-8587-g6890e51b69b2/
[3] http://www.spinics.net/lists/arm-kernel/msg451280.html

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
  2015-10-15 15:32     ` Russell King - ARM Linux
@ 2015-10-19 12:41       ` Lucas Stach
  -1 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-10-19 12:41 UTC (permalink / raw)
  To: Russell King - ARM Linux, Tony Lindgren, Hauke Mehrtens
  Cc: linux-omap, linux-arm-kernel, patchwork-lst

Am Donnerstag, den 15.10.2015, 16:32 +0100 schrieb Russell King - ARM
Linux:
> On Thu, Oct 15, 2015 at 12:32:20PM +0200, Lucas Stach wrote:
> > Install a non-faulting handler just before unmasking imprecise aborts
> > and switch back to the regular one after unmasking is done.
> > 
> > This catches any pending imprecise abort that the firmware/bootloader
> > may have left behind that would normally crash the kernel at that point.
> > As there are apparently a lot of bootlaoders out there that do such a
> > thing it makes sense to handle it in the common startup code.
> > 
> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> 
> Much better.  Please feel free to add it to the patch system, thanks.
> 
> I think, given that the original seems to be breaking platforms, this
> patch needs to go into -rc kernels, right?
> 
Okay, this is in the patch system as patch 8447/1 now.

As Russell hasn't said whether he would like to pick up the platform
patches I've omitted them for now and would ask the platform maintainers
to pick them up themselves for kernel 4.4.

Regards,
Lucas
-- 
Pengutronix e.K.             | Lucas Stach                 |
Industrial Linux Solutions   | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask
@ 2015-10-19 12:41       ` Lucas Stach
  0 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-10-19 12:41 UTC (permalink / raw)
  To: linux-arm-kernel

Am Donnerstag, den 15.10.2015, 16:32 +0100 schrieb Russell King - ARM
Linux:
> On Thu, Oct 15, 2015 at 12:32:20PM +0200, Lucas Stach wrote:
> > Install a non-faulting handler just before unmasking imprecise aborts
> > and switch back to the regular one after unmasking is done.
> > 
> > This catches any pending imprecise abort that the firmware/bootloader
> > may have left behind that would normally crash the kernel at that point.
> > As there are apparently a lot of bootlaoders out there that do such a
> > thing it makes sense to handle it in the common startup code.
> > 
> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> 
> Much better.  Please feel free to add it to the patch system, thanks.
> 
> I think, given that the original seems to be breaking platforms, this
> patch needs to go into -rc kernels, right?
> 
Okay, this is in the patch system as patch 8447/1 now.

As Russell hasn't said whether he would like to pick up the platform
patches I've omitted them for now and would ask the platform maintainers
to pick them up themselves for kernel 4.4.

Regards,
Lucas
-- 
Pengutronix e.K.             | Lucas Stach                 |
Industrial Linux Solutions   | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2 2/3] ARM: OMAP2+: remove custom abort handler for t410
  2015-10-15 10:32   ` Lucas Stach
@ 2015-11-12 13:32     ` Lucas Stach
  -1 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-11-12 13:32 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap, linux-arm-kernel, patchwork-lst

Tony,

can you please take this patch through the OMAP tree for 4.4? The first
patch in this series went in through Russells tree, so the below code
now has the possibility to hide a real abort later during boot.

Regards,
Lucas

Am Donnerstag, den 15.10.2015, 12:32 +0200 schrieb Lucas Stach:
> This is not needed anymore. Handling a potentially pending imprecise external
> abort left behind by the bootloader is now done in a slightly safer way inside
> the common ARM startup code.
> 
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> Acked-by: Tony Lindgren <tony@atomide.com>
> ---
>  arch/arm/mach-omap2/pdata-quirks.c | 29 -----------------------------
>  1 file changed, 29 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
> index ea56397599c2..3a2bc2a88db4 100644
> --- a/arch/arm/mach-omap2/pdata-quirks.c
> +++ b/arch/arm/mach-omap2/pdata-quirks.c
> @@ -24,9 +24,6 @@
>  #include <linux/platform_data/iommu-omap.h>
>  #include <linux/platform_data/wkup_m3.h>
>  
> -#include <asm/siginfo.h>
> -#include <asm/signal.h>
> -
>  #include "common.h"
>  #include "common-board-devices.h"
>  #include "dss-common.h"
> @@ -385,29 +382,6 @@ static void __init omap3_pandora_legacy_init(void)
>  }
>  #endif /* CONFIG_ARCH_OMAP3 */
>  
> -#ifdef CONFIG_SOC_TI81XX
> -static int fault_fixed_up;
> -
> -static int t410_abort_handler(unsigned long addr, unsigned int fsr,
> -			      struct pt_regs *regs)
> -{
> -	if ((fsr == 0x406 || fsr == 0xc06) && !fault_fixed_up) {
> -		pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
> -			addr, fsr);
> -		fault_fixed_up = 1;
> -		return 0;
> -	}
> -
> -	return 1;
> -}
> -
> -static void __init t410_abort_init(void)
> -{
> -	hook_fault_code(16 + 6, t410_abort_handler, SIGBUS, BUS_OBJERR,
> -			"imprecise external abort");
> -}
> -#endif
> -
>  #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
>  static struct iommu_platform_data omap4_iommu_pdata = {
>  	.reset_name = "mmu_cache",
> @@ -536,9 +510,6 @@ static struct pdata_init pdata_quirks[] __initdata = {
>  	{ "openpandora,omap3-pandora-600mhz", omap3_pandora_legacy_init, },
>  	{ "openpandora,omap3-pandora-1ghz", omap3_pandora_legacy_init, },
>  #endif
> -#ifdef CONFIG_SOC_TI81XX
> -	{ "hp,t410", t410_abort_init, },
> -#endif
>  #ifdef CONFIG_SOC_OMAP5
>  	{ "ti,omap5-uevm", omap5_uevm_legacy_init, },
>  #endif

-- 
Pengutronix e.K.             | Lucas Stach                 |
Industrial Linux Solutions   | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 2/3] ARM: OMAP2+: remove custom abort handler for t410
@ 2015-11-12 13:32     ` Lucas Stach
  0 siblings, 0 replies; 30+ messages in thread
From: Lucas Stach @ 2015-11-12 13:32 UTC (permalink / raw)
  To: linux-arm-kernel

Tony,

can you please take this patch through the OMAP tree for 4.4? The first
patch in this series went in through Russells tree, so the below code
now has the possibility to hide a real abort later during boot.

Regards,
Lucas

Am Donnerstag, den 15.10.2015, 12:32 +0200 schrieb Lucas Stach:
> This is not needed anymore. Handling a potentially pending imprecise external
> abort left behind by the bootloader is now done in a slightly safer way inside
> the common ARM startup code.
> 
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> Acked-by: Tony Lindgren <tony@atomide.com>
> ---
>  arch/arm/mach-omap2/pdata-quirks.c | 29 -----------------------------
>  1 file changed, 29 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
> index ea56397599c2..3a2bc2a88db4 100644
> --- a/arch/arm/mach-omap2/pdata-quirks.c
> +++ b/arch/arm/mach-omap2/pdata-quirks.c
> @@ -24,9 +24,6 @@
>  #include <linux/platform_data/iommu-omap.h>
>  #include <linux/platform_data/wkup_m3.h>
>  
> -#include <asm/siginfo.h>
> -#include <asm/signal.h>
> -
>  #include "common.h"
>  #include "common-board-devices.h"
>  #include "dss-common.h"
> @@ -385,29 +382,6 @@ static void __init omap3_pandora_legacy_init(void)
>  }
>  #endif /* CONFIG_ARCH_OMAP3 */
>  
> -#ifdef CONFIG_SOC_TI81XX
> -static int fault_fixed_up;
> -
> -static int t410_abort_handler(unsigned long addr, unsigned int fsr,
> -			      struct pt_regs *regs)
> -{
> -	if ((fsr == 0x406 || fsr == 0xc06) && !fault_fixed_up) {
> -		pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
> -			addr, fsr);
> -		fault_fixed_up = 1;
> -		return 0;
> -	}
> -
> -	return 1;
> -}
> -
> -static void __init t410_abort_init(void)
> -{
> -	hook_fault_code(16 + 6, t410_abort_handler, SIGBUS, BUS_OBJERR,
> -			"imprecise external abort");
> -}
> -#endif
> -
>  #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
>  static struct iommu_platform_data omap4_iommu_pdata = {
>  	.reset_name = "mmu_cache",
> @@ -536,9 +510,6 @@ static struct pdata_init pdata_quirks[] __initdata = {
>  	{ "openpandora,omap3-pandora-600mhz", omap3_pandora_legacy_init, },
>  	{ "openpandora,omap3-pandora-1ghz", omap3_pandora_legacy_init, },
>  #endif
> -#ifdef CONFIG_SOC_TI81XX
> -	{ "hp,t410", t410_abort_init, },
> -#endif
>  #ifdef CONFIG_SOC_OMAP5
>  	{ "ti,omap5-uevm", omap5_uevm_legacy_init, },
>  #endif

-- 
Pengutronix e.K.             | Lucas Stach                 |
Industrial Linux Solutions   | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 3/3] ARM: BCM5301X: remove workaround imprecise abort fault handler
  2015-10-15 10:32   ` Lucas Stach
  (?)
@ 2015-11-12 13:37   ` Lucas Stach
  2015-11-12 17:54     ` Hauke Mehrtens
  -1 siblings, 1 reply; 30+ messages in thread
From: Lucas Stach @ 2015-11-12 13:37 UTC (permalink / raw)
  To: linux-arm-kernel

Hauke,

can you please take this patch through your tree for 4.4? The first
patch in this series went in through Russells tree, so the below code
now has the possibility to hide a real abort later during boot.

Regards,
Lucas

Am Donnerstag, den 15.10.2015, 12:32 +0200 schrieb Lucas Stach:
> This is not needed anymore. Handling a potentially pending imprecise external
> abort left behind by the bootloader is now done in a slightly safer way inside
> the common ARM startup code.
> 
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
> ---
>  arch/arm/mach-bcm/bcm_5301x.c | 35 -----------------------------------
>  1 file changed, 35 deletions(-)
> 
> diff --git a/arch/arm/mach-bcm/bcm_5301x.c b/arch/arm/mach-bcm/bcm_5301x.c
> index 5478fe6bcce6..c8830a2b0d60 100644
> --- a/arch/arm/mach-bcm/bcm_5301x.c
> +++ b/arch/arm/mach-bcm/bcm_5301x.c
> @@ -9,40 +9,6 @@
>  #include <asm/hardware/cache-l2x0.h>
>  
>  #include <asm/mach/arch.h>
> -#include <asm/siginfo.h>
> -#include <asm/signal.h>
> -
> -
> -static bool first_fault = true;
> -
> -static int bcm5301x_abort_handler(unsigned long addr, unsigned int fsr,
> -				 struct pt_regs *regs)
> -{
> -	if ((fsr == 0x1406 || fsr == 0x1c06) && first_fault) {
> -		first_fault = false;
> -
> -		/*
> -		 * These faults with codes 0x1406 (BCM4709) or 0x1c06 happens
> -		 * for no good reason, possibly left over from the CFE boot
> -		 * loader.
> -		 */
> -		pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
> -			addr, fsr);
> -
> -		/* Returning non-zero causes fault display and panic */
> -		return 0;
> -	}
> -
> -	/* Others should cause a fault */
> -	return 1;
> -}
> -
> -static void __init bcm5301x_init_early(void)
> -{
> -	/* Install our hook */
> -	hook_fault_code(16 + 6, bcm5301x_abort_handler, SIGBUS, BUS_OBJERR,
> -			"imprecise external abort");
> -}
>  
>  static const char *const bcm5301x_dt_compat[] __initconst = {
>  	"brcm,bcm4708",
> @@ -52,6 +18,5 @@ static const char *const bcm5301x_dt_compat[] __initconst = {
>  DT_MACHINE_START(BCM5301X, "BCM5301X")
>  	.l2c_aux_val	= 0,
>  	.l2c_aux_mask	= ~0,
> -	.init_early	= bcm5301x_init_early,
>  	.dt_compat	= bcm5301x_dt_compat,
>  MACHINE_END

-- 
Pengutronix e.K.             | Lucas Stach                 |
Industrial Linux Solutions   | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2 2/3] ARM: OMAP2+: remove custom abort handler for t410
  2015-11-12 13:32     ` Lucas Stach
@ 2015-11-12 17:51       ` Tony Lindgren
  -1 siblings, 0 replies; 30+ messages in thread
From: Tony Lindgren @ 2015-11-12 17:51 UTC (permalink / raw)
  To: Lucas Stach; +Cc: linux-omap, linux-arm-kernel, patchwork-lst

* Lucas Stach <l.stach@pengutronix.de> [151112 05:33]:
> Tony,
> 
> can you please take this patch through the OMAP tree for 4.4? The first
> patch in this series went in through Russells tree, so the below code
> now has the possibility to hide a real abort later during boot.

OK will do thanks. I've also verified that the abort handler is no longer
needed. After seeing where it happens, fixing it was trivial :)

FYI, the fix was 57df53808534 ("ARM: OMAP2+: Fix imprecise external abort
caused by bogus SRAM init"). Other platforms may have similar issues where
it's not really anything left behind by the bootloader but a real kernel
bug.

Regards,

Tony

> 
> Am Donnerstag, den 15.10.2015, 12:32 +0200 schrieb Lucas Stach:
> > This is not needed anymore. Handling a potentially pending imprecise external
> > abort left behind by the bootloader is now done in a slightly safer way inside
> > the common ARM startup code.
> > 
> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> > Acked-by: Tony Lindgren <tony@atomide.com>
> > ---
> >  arch/arm/mach-omap2/pdata-quirks.c | 29 -----------------------------
> >  1 file changed, 29 deletions(-)
> > 
> > diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
> > index ea56397599c2..3a2bc2a88db4 100644
> > --- a/arch/arm/mach-omap2/pdata-quirks.c
> > +++ b/arch/arm/mach-omap2/pdata-quirks.c
> > @@ -24,9 +24,6 @@
> >  #include <linux/platform_data/iommu-omap.h>
> >  #include <linux/platform_data/wkup_m3.h>
> >  
> > -#include <asm/siginfo.h>
> > -#include <asm/signal.h>
> > -
> >  #include "common.h"
> >  #include "common-board-devices.h"
> >  #include "dss-common.h"
> > @@ -385,29 +382,6 @@ static void __init omap3_pandora_legacy_init(void)
> >  }
> >  #endif /* CONFIG_ARCH_OMAP3 */
> >  
> > -#ifdef CONFIG_SOC_TI81XX
> > -static int fault_fixed_up;
> > -
> > -static int t410_abort_handler(unsigned long addr, unsigned int fsr,
> > -			      struct pt_regs *regs)
> > -{
> > -	if ((fsr == 0x406 || fsr == 0xc06) && !fault_fixed_up) {
> > -		pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
> > -			addr, fsr);
> > -		fault_fixed_up = 1;
> > -		return 0;
> > -	}
> > -
> > -	return 1;
> > -}
> > -
> > -static void __init t410_abort_init(void)
> > -{
> > -	hook_fault_code(16 + 6, t410_abort_handler, SIGBUS, BUS_OBJERR,
> > -			"imprecise external abort");
> > -}
> > -#endif
> > -
> >  #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
> >  static struct iommu_platform_data omap4_iommu_pdata = {
> >  	.reset_name = "mmu_cache",
> > @@ -536,9 +510,6 @@ static struct pdata_init pdata_quirks[] __initdata = {
> >  	{ "openpandora,omap3-pandora-600mhz", omap3_pandora_legacy_init, },
> >  	{ "openpandora,omap3-pandora-1ghz", omap3_pandora_legacy_init, },
> >  #endif
> > -#ifdef CONFIG_SOC_TI81XX
> > -	{ "hp,t410", t410_abort_init, },
> > -#endif
> >  #ifdef CONFIG_SOC_OMAP5
> >  	{ "ti,omap5-uevm", omap5_uevm_legacy_init, },
> >  #endif
> 
> -- 
> Pengutronix e.K.             | Lucas Stach                 |
> Industrial Linux Solutions   | http://www.pengutronix.de/  |
> 

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 2/3] ARM: OMAP2+: remove custom abort handler for t410
@ 2015-11-12 17:51       ` Tony Lindgren
  0 siblings, 0 replies; 30+ messages in thread
From: Tony Lindgren @ 2015-11-12 17:51 UTC (permalink / raw)
  To: linux-arm-kernel

* Lucas Stach <l.stach@pengutronix.de> [151112 05:33]:
> Tony,
> 
> can you please take this patch through the OMAP tree for 4.4? The first
> patch in this series went in through Russells tree, so the below code
> now has the possibility to hide a real abort later during boot.

OK will do thanks. I've also verified that the abort handler is no longer
needed. After seeing where it happens, fixing it was trivial :)

FYI, the fix was 57df53808534 ("ARM: OMAP2+: Fix imprecise external abort
caused by bogus SRAM init"). Other platforms may have similar issues where
it's not really anything left behind by the bootloader but a real kernel
bug.

Regards,

Tony

> 
> Am Donnerstag, den 15.10.2015, 12:32 +0200 schrieb Lucas Stach:
> > This is not needed anymore. Handling a potentially pending imprecise external
> > abort left behind by the bootloader is now done in a slightly safer way inside
> > the common ARM startup code.
> > 
> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> > Acked-by: Tony Lindgren <tony@atomide.com>
> > ---
> >  arch/arm/mach-omap2/pdata-quirks.c | 29 -----------------------------
> >  1 file changed, 29 deletions(-)
> > 
> > diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
> > index ea56397599c2..3a2bc2a88db4 100644
> > --- a/arch/arm/mach-omap2/pdata-quirks.c
> > +++ b/arch/arm/mach-omap2/pdata-quirks.c
> > @@ -24,9 +24,6 @@
> >  #include <linux/platform_data/iommu-omap.h>
> >  #include <linux/platform_data/wkup_m3.h>
> >  
> > -#include <asm/siginfo.h>
> > -#include <asm/signal.h>
> > -
> >  #include "common.h"
> >  #include "common-board-devices.h"
> >  #include "dss-common.h"
> > @@ -385,29 +382,6 @@ static void __init omap3_pandora_legacy_init(void)
> >  }
> >  #endif /* CONFIG_ARCH_OMAP3 */
> >  
> > -#ifdef CONFIG_SOC_TI81XX
> > -static int fault_fixed_up;
> > -
> > -static int t410_abort_handler(unsigned long addr, unsigned int fsr,
> > -			      struct pt_regs *regs)
> > -{
> > -	if ((fsr == 0x406 || fsr == 0xc06) && !fault_fixed_up) {
> > -		pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
> > -			addr, fsr);
> > -		fault_fixed_up = 1;
> > -		return 0;
> > -	}
> > -
> > -	return 1;
> > -}
> > -
> > -static void __init t410_abort_init(void)
> > -{
> > -	hook_fault_code(16 + 6, t410_abort_handler, SIGBUS, BUS_OBJERR,
> > -			"imprecise external abort");
> > -}
> > -#endif
> > -
> >  #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
> >  static struct iommu_platform_data omap4_iommu_pdata = {
> >  	.reset_name = "mmu_cache",
> > @@ -536,9 +510,6 @@ static struct pdata_init pdata_quirks[] __initdata = {
> >  	{ "openpandora,omap3-pandora-600mhz", omap3_pandora_legacy_init, },
> >  	{ "openpandora,omap3-pandora-1ghz", omap3_pandora_legacy_init, },
> >  #endif
> > -#ifdef CONFIG_SOC_TI81XX
> > -	{ "hp,t410", t410_abort_init, },
> > -#endif
> >  #ifdef CONFIG_SOC_OMAP5
> >  	{ "ti,omap5-uevm", omap5_uevm_legacy_init, },
> >  #endif
> 
> -- 
> Pengutronix e.K.             | Lucas Stach                 |
> Industrial Linux Solutions   | http://www.pengutronix.de/  |
> 

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 3/3] ARM: BCM5301X: remove workaround imprecise abort fault handler
  2015-11-12 13:37   ` Lucas Stach
@ 2015-11-12 17:54     ` Hauke Mehrtens
  0 siblings, 0 replies; 30+ messages in thread
From: Hauke Mehrtens @ 2015-11-12 17:54 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Florian,

can you please take this patch for 4.4.

I do not have an own tree, Florian takes the patches for BCM5301X

Hauke

On 11/12/2015 02:37 PM, Lucas Stach wrote:
> Hauke,
> 
> can you please take this patch through your tree for 4.4? The first
> patch in this series went in through Russells tree, so the below code
> now has the possibility to hide a real abort later during boot.
> 
> Regards,
> Lucas
> 
> Am Donnerstag, den 15.10.2015, 12:32 +0200 schrieb Lucas Stach:
>> This is not needed anymore. Handling a potentially pending imprecise external
>> abort left behind by the bootloader is now done in a slightly safer way inside
>> the common ARM startup code.
>>
>> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
>> Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
>> ---
>>  arch/arm/mach-bcm/bcm_5301x.c | 35 -----------------------------------
>>  1 file changed, 35 deletions(-)
>>
>> diff --git a/arch/arm/mach-bcm/bcm_5301x.c b/arch/arm/mach-bcm/bcm_5301x.c
>> index 5478fe6bcce6..c8830a2b0d60 100644
>> --- a/arch/arm/mach-bcm/bcm_5301x.c
>> +++ b/arch/arm/mach-bcm/bcm_5301x.c
>> @@ -9,40 +9,6 @@
>>  #include <asm/hardware/cache-l2x0.h>
>>  
>>  #include <asm/mach/arch.h>
>> -#include <asm/siginfo.h>
>> -#include <asm/signal.h>
>> -
>> -
>> -static bool first_fault = true;
>> -
>> -static int bcm5301x_abort_handler(unsigned long addr, unsigned int fsr,
>> -				 struct pt_regs *regs)
>> -{
>> -	if ((fsr == 0x1406 || fsr == 0x1c06) && first_fault) {
>> -		first_fault = false;
>> -
>> -		/*
>> -		 * These faults with codes 0x1406 (BCM4709) or 0x1c06 happens
>> -		 * for no good reason, possibly left over from the CFE boot
>> -		 * loader.
>> -		 */
>> -		pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
>> -			addr, fsr);
>> -
>> -		/* Returning non-zero causes fault display and panic */
>> -		return 0;
>> -	}
>> -
>> -	/* Others should cause a fault */
>> -	return 1;
>> -}
>> -
>> -static void __init bcm5301x_init_early(void)
>> -{
>> -	/* Install our hook */
>> -	hook_fault_code(16 + 6, bcm5301x_abort_handler, SIGBUS, BUS_OBJERR,
>> -			"imprecise external abort");
>> -}
>>  
>>  static const char *const bcm5301x_dt_compat[] __initconst = {
>>  	"brcm,bcm4708",
>> @@ -52,6 +18,5 @@ static const char *const bcm5301x_dt_compat[] __initconst = {
>>  DT_MACHINE_START(BCM5301X, "BCM5301X")
>>  	.l2c_aux_val	= 0,
>>  	.l2c_aux_mask	= ~0,
>> -	.init_early	= bcm5301x_init_early,
>>  	.dt_compat	= bcm5301x_dt_compat,
>>  MACHINE_END
> 

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2 3/3] ARM: BCM5301X: remove workaround imprecise abort fault handler
  2015-10-15 10:32   ` Lucas Stach
@ 2015-11-25  0:01     ` Florian Fainelli
  -1 siblings, 0 replies; 30+ messages in thread
From: Florian Fainelli @ 2015-11-25  0:01 UTC (permalink / raw)
  To: Lucas Stach, Russell King
  Cc: Tony Lindgren, Hauke Mehrtens, linux-omap, linux-arm-kernel,
	patchwork-lst

On 15/10/15 03:32, Lucas Stach wrote:
> This is not needed anymore. Handling a potentially pending imprecise external
> abort left behind by the bootloader is now done in a slightly safer way inside
> the common ARM startup code.
> 
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> Acked-by: Hauke Mehrtens <hauke@hauke-m.de>

Applied to soc/next, thanks!
-- 
Florian

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v2 3/3] ARM: BCM5301X: remove workaround imprecise abort fault handler
@ 2015-11-25  0:01     ` Florian Fainelli
  0 siblings, 0 replies; 30+ messages in thread
From: Florian Fainelli @ 2015-11-25  0:01 UTC (permalink / raw)
  To: linux-arm-kernel

On 15/10/15 03:32, Lucas Stach wrote:
> This is not needed anymore. Handling a potentially pending imprecise external
> abort left behind by the bootloader is now done in a slightly safer way inside
> the common ARM startup code.
> 
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> Acked-by: Hauke Mehrtens <hauke@hauke-m.de>

Applied to soc/next, thanks!
-- 
Florian

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2015-11-25  0:01 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-15 10:32 [PATCH v2 0/3] ARM: handle imprecise aborts from firmware in common code Lucas Stach
2015-10-15 10:32 ` Lucas Stach
2015-10-15 10:32 ` [PATCH v2 1/3] ARM: catch pending imprecise abort on unmask Lucas Stach
2015-10-15 10:32   ` Lucas Stach
2015-10-15 15:32   ` Russell King - ARM Linux
2015-10-15 15:32     ` Russell King - ARM Linux
2015-10-15 15:39     ` Tony Lindgren
2015-10-15 15:39       ` Tony Lindgren
2015-10-15 16:06       ` Russell King - ARM Linux
2015-10-15 16:06         ` Russell King - ARM Linux
2015-10-15 16:23         ` Tony Lindgren
2015-10-15 16:23           ` Tony Lindgren
2015-10-16  8:21     ` Lucas Stach
2015-10-16  8:21       ` Lucas Stach
2015-10-19 12:41     ` Lucas Stach
2015-10-19 12:41       ` Lucas Stach
2015-10-15 10:32 ` [PATCH v2 2/3] ARM: OMAP2+: remove custom abort handler for t410 Lucas Stach
2015-10-15 10:32   ` Lucas Stach
2015-11-12 13:32   ` Lucas Stach
2015-11-12 13:32     ` Lucas Stach
2015-11-12 17:51     ` Tony Lindgren
2015-11-12 17:51       ` Tony Lindgren
2015-10-15 10:32 ` [PATCH v2 3/3] ARM: BCM5301X: remove workaround imprecise abort fault handler Lucas Stach
2015-10-15 10:32   ` Lucas Stach
2015-11-12 13:37   ` Lucas Stach
2015-11-12 17:54     ` Hauke Mehrtens
2015-11-25  0:01   ` Florian Fainelli
2015-11-25  0:01     ` Florian Fainelli
2015-10-16 19:11 ` [PATCH v2 0/3] ARM: handle imprecise aborts from firmware in common code Tyler Baker
2015-10-16 19:11   ` Tyler Baker

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.