Subject: [PATCH v2 2/3] ARM: OMAP2+: remove custom abort handler for t410

From: [email-masked] (Tony Lindgren)
Date: Thu, 12 Nov 2015 09:51:17 -0800

* Lucas Stach <[email-masked]> [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 <[email-masked]>
> > Acked-by: Tony Lindgren <[email-masked]>
> > ---
> >  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/  |
>