android_kernel_xiaomi_sm8450/arch/arm
Tony Lindgren e748994f5c ARM: 8353/1: mm: Fix Cortex-A8 erratum 430973 segfaults for bootloaders and multiarch
Looks like apps can be made to segfault easily on armhf distros
just by running cpuburn-a8 in the background, then starting apt
get update unless erratum 430973 workaround is enabled. This happens
on r3p2 also, which has 430973 fixed in hardware.

Turns out the reason for this is some bootloaders incorrectly
setting the auxilary register IBE bit, which probably causes us
to hit erratum 687067 on Cortex-A8 later than r1p2.

If the bootloader incorrectly sets the IBE bit in the auxilary control
register for Cortex-A8 revisions with 430973 fixed in hardware, we
need to call flush BTAC/BTB to avoid segfaults probably caused by
erratum 687067. So let's flush BTAC/BTB unconditionally for Cortex-A8.
It won't do anything unless the IBE bit is set.

Note that we keep the erratum 430973 Kconfig option still around and
disabled for multiarch as it may be unsafe to enable for some secure
SoC. It is known safe to be enabled for n900, but won't do anything
on n900 as the IBE bit needs to be set with SMC.

Also note that SoCs probably should also add checks and print warnings
for the misconfigured IBE bit depending on the Cortex-A8 revision
so the bootloaders can be fixed Cortex-A8 revisions later than
r1p2 to not set the IBE bit.

Tested-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2015-05-08 10:42:33 +01:00
..
boot Merge git://www.linux-watchdog.org/linux-watchdog 2015-04-22 11:22:55 -07:00
common ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00
configs ARM: SoC defconfig updates for v4.1 2015-04-22 09:21:30 -07:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2015-04-15 10:42:15 -07:00
firmware
include ARM: 8341/1: io: Unpessimize relaxed io accessors 2015-05-08 10:42:33 +01:00
kernel ARM: 8340/1: ARMv7-M: Enlarge vector table up to 256 entries 2015-05-08 10:42:21 +01:00
kvm This mostly includes the PPC changes for 4.1, which this time cover 2015-04-26 13:06:22 -07:00
lib ARM: ensure delay timer has sufficient accuracy for delays 2015-04-14 22:28:07 +01:00
mach-alpine ARM: alpine: add support for generic pci 2015-04-14 01:15:57 +02:00
mach-asm9260 clockevents: asm9260: Fix compilation error with sparc/sparc64 allyesconfig 2015-02-25 10:28:22 +01:00
mach-at91 Fourth batch of cleanup for 4.1: 2015-04-14 01:50:21 +02:00
mach-axxia
mach-bcm ARM: cygnus: fix const declaration bcm_cygnus_dt_compat 2015-03-24 15:13:23 -07:00
mach-berlin
mach-clps711x
mach-cns3xxx ARM: cns3xxx: don't export static symbol 2015-03-13 11:02:15 +01:00
mach-davinci ARM: DT updates for v4.1 2015-04-22 09:09:46 -07:00
mach-digicolor
mach-dove PCI: Cleanup control flow 2015-03-19 10:17:22 -05:00
mach-ebsa110
mach-efm32
mach-ep93xx
mach-exynos ARM: SoC driver updates for v4.1 2015-04-22 09:18:17 -07:00
mach-footbridge
mach-gemini
mach-highbank
mach-hisi
mach-imx ARM: SoC late changes for v4.1 2015-04-22 09:24:55 -07:00
mach-integrator
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-keystone
mach-ks8695
mach-lpc32xx
mach-mediatek ARM: mediatek: enable the pin controller 2015-03-10 14:31:10 +01:00
mach-meson ARM: meson: select PINCTRL_MESON and ARCH_REQUIRE_GPIOLIB 2015-03-02 10:59:50 +01:00
mach-mmp
mach-moxart
mach-mv78xx0 PCI: Cleanup control flow 2015-03-19 10:17:22 -05:00
mach-mvebu ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00
mach-mxs
mach-netx
mach-nomadik
mach-nspire
mach-omap1 ARM: OMAP1: PM: fix some build warnings on 1510-only Kconfigs 2015-03-16 16:09:23 -07:00
mach-omap2 ARM: SoC late changes for v4.1 2015-04-22 09:24:55 -07:00
mach-orion5x PCI: Cleanup control flow 2015-03-19 10:17:22 -05:00
mach-picoxcell
mach-prima2
mach-pxa power supply and reset changes for the v4.1 series 2015-04-13 15:21:34 -07:00
mach-qcom firmware: qcom: scm: Clean cold boot entry to export only the API 2015-03-11 15:15:05 -05:00
mach-realview net: smc91x: use run-time configuration on all ARM machines 2015-02-28 12:56:56 -05:00
mach-rockchip ARM: rockchip: disable watchdog during suspend 2015-03-11 22:41:02 +01:00
mach-rpc
mach-s3c24xx ARM: S3C24XX: avoid a Kconfig warning 2015-02-27 05:50:25 +09:00
mach-s3c64xx ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00
mach-s5pv210 ARM: 8326/1: s5pv210: move resume code to .text section 2015-03-29 23:11:58 +01:00
mach-sa1100 ARM: 8346/1: sa1100: Constify irq_domain_ops 2015-05-08 10:42:33 +01:00
mach-shmobile Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-04-24 09:49:37 -07:00
mach-socfpga ARM: socfpga: make sure socfpga_cpu1start_addr is properly flushed 2015-03-04 13:03:17 -06:00
mach-spear
mach-sti ARM: STi: Add STiH410 SoC support 2015-03-11 15:34:45 +01:00
mach-sunxi
mach-tegra Power management and ACPI updates for v4.1-rc1 2015-04-14 20:21:54 -07:00
mach-u300
mach-ux500 ARM: ux500: switch from gic_arch_extn to gic_set_irqchip_flags 2015-03-15 01:28:11 +00:00
mach-versatile
mach-vexpress ARM: SoC driver updates for v4.1 2015-04-22 09:18:17 -07:00
mach-vt8500
mach-w90x900
mach-zynq ARM: zynq: switch from gic_arch_extn to gic_set_irqchip_flags 2015-03-15 01:28:12 +00:00
mm ARM: 8353/1: mm: Fix Cortex-A8 erratum 430973 segfaults for bootloaders and multiarch 2015-05-08 10:42:33 +01:00
net
nwfpe ARM: 8322/1: keep .text and .fixup regions closer together 2015-03-29 23:11:56 +01:00
oprofile
plat-iop
plat-omap ARM, clocksource/drivers: Provide read_boot_clock64() and read_persistent_clock64() and use them 2015-04-03 08:18:23 +02:00
plat-orion
plat-pxa ARM: plat-pxa: remove use of seq_printf return value 2015-04-15 16:35:25 -07:00
plat-samsung ARM: S3C24XX: fix header file inclusions 2015-02-27 05:50:23 +09:00
plat-versatile
probes
tools
vdso ARM: 8344/1: VDSO: honor CONFIG_VDSO in Makefile 2015-04-21 15:28:02 +01:00
vfp
xen xen/privcmd: improve performance of MMAPBATCH_V2 2015-03-16 14:49:15 +00:00
Kconfig ARM: SoC multiplatform code changes for v4.1 2015-04-22 09:20:15 -07:00
Kconfig-nommu
Kconfig.debug ARM: SoC multiplatform code changes for v4.1 2015-04-22 09:20:15 -07:00
Makefile ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00