linux-stable/arch/arm
Ard Biesheuvel 0698fac4ac efi/arm: Clean EFI stub exit code from cache instead of avoiding it
The following commit:

  c7225494b ("efi/arm: Work around missing cache maintenance in decompressor handover")

modified the EFI handover code written in assembler to work around the
missing cache maintenance of the piece of code that is executed after the
MMU and caches are turned off.

Due to the fact that this sequence incorporates a subroutine call, cleaning
that code from the cache is not a matter of simply passing the start and end of
the currently running subroutine into cache_clean_flush(), which is why
instead, the code jumps across into the cleaned copy of the image.

However, this assumes that this copy is executable, and this means we
expect EFI_LOADER_DATA regions to be executable as well, which is not
a reasonable assumption to make, even if this is true for most UEFI
implementations today.

So change this back, and add a cache_clean_flush() call to cover the
remaining code in the subroutine, and any code it may execute in the
context of cache_off().

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: linux-efi@vger.kernel.org
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: David Hildenbrand <david@redhat.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Link: https://lore.kernel.org/r/20200228121408.9075-5-ardb@kernel.org
2020-02-29 10:16:57 +01:00
..
boot efi/arm: Clean EFI stub exit code from cache instead of avoiding it 2020-02-29 10:16:57 +01:00
common
configs One patch to enable the new thermal sensor driver found on newer 2020-02-11 14:49:15 -08:00
crypto crypto: arm/chacha - fix build failured when kernel mode NEON is disabled 2020-01-22 16:21:11 +08:00
include A set of fixes for the interrupt subsystem: 2020-02-09 11:56:41 -08:00
kernel arm/patch: Fix !MMU compile 2020-02-11 12:56:27 +01:00
kvm KVM: Drop kvm_arch_vcpu_setup() 2020-01-27 19:59:28 +01:00
lib
mach-actions
mach-alpine
mach-artpec
mach-asm9260
mach-aspeed
mach-at91 ARM: at91: pm: use of_device_id array to find the proper shdwc node 2020-01-10 23:40:31 +01:00
mach-axxia
mach-bcm ARM: SoC platform updates 2020-02-08 13:55:25 -08:00
mach-berlin
mach-clps711x
mach-cns3xxx
mach-davinci ARM: SoC: late updates 2020-02-08 14:17:27 -08:00
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx
mach-exynos ARM: SoC platform updates 2020-02-08 13:55:25 -08:00
mach-footbridge
mach-gemini
mach-highbank
mach-hisi
mach-imx ARM: imx: only select ARM_ERRATA_814220 for ARMv7-A 2020-01-09 18:48:35 +08:00
mach-integrator
mach-iop32x
mach-ixp4xx ARM/net: ixp4xx: Pass ethernet physical base as resource 2020-01-12 12:59:53 -08:00
mach-keystone
mach-lpc18xx
mach-lpc32xx
mach-mediatek
mach-meson
mach-milbeaut
mach-mmp ARM: mmp: do not divide the clock rate 2020-01-06 09:18:50 -08:00
mach-moxart
mach-mv78xx0
mach-mvebu
mach-mxs
mach-nomadik
mach-npcm ARM: npcm: Bring back GPIOLIB support 2020-02-09 03:44:51 -08:00
mach-nspire
mach-omap1 ARM: OMAP1: drop duplicated dependency on ARCH_OMAP1 2019-11-11 12:30:39 -08:00
mach-omap2 ARM: SoC: late updates 2020-02-08 14:17:27 -08:00
mach-orion5x
mach-oxnas
mach-picoxcell
mach-prima2
mach-pxa USB/Thunderbolt/PHY driver updates for 5.6-rc1 2020-01-29 10:09:44 -08:00
mach-qcom
mach-rda
mach-realview
mach-rockchip
mach-rpc
mach-s3c24xx ARM: s3c24xx: Switch to atomic pwm API in rx1950 2020-01-21 20:56:47 +01:00
mach-s3c64xx ARM: SoC platform updates 2020-02-08 13:55:25 -08:00
mach-s5pv210
mach-sa1100
mach-shmobile remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
mach-socfpga arm: socfpga: execute cold reboot by default 2019-11-22 12:12:10 -06:00
mach-spear
mach-sti
mach-stm32
mach-sunxi ARM: sunxi: Fix CPU powerdown on A83T 2019-10-29 09:09:56 +01:00
mach-tango
mach-tegra ARM: tegra: Use clk_m CPU on Tegra124 LP1 resume 2020-01-08 12:58:46 +01:00
mach-u300 pinctrl: Allow modules to use pinctrl_[un]register_mappings 2019-12-30 14:27:17 +01:00
mach-uniphier
mach-ux500 mfd: db8500-prcmu: Support U8420-sysclk firmware 2019-11-11 08:45:04 +00:00
mach-versatile
mach-vexpress ARM: vexpress: Set-up shared OPP table instead of individual for each CPU 2019-12-09 11:52:50 +00:00
mach-vt8500
mach-zx
mach-zynq ARM: zynq: use physical cpuid in zynq_slcr_cpu_stop/start 2020-01-08 15:21:09 +01:00
mm ARM development updates for 5.6-rc1: 2020-02-04 13:12:19 +00:00
net ARM: net: bpf: Improve prologue code sequence 2019-12-11 14:34:26 +01:00
nwfpe
oprofile
plat-omap dmaengine: ti: omap-dma: Configure global priority register directly 2019-12-30 09:45:25 -08:00
plat-orion
plat-pxa
plat-samsung ARM: samsung: Rename Samsung and Exynos to lowercase 2020-01-07 20:44:22 +01:00
plat-versatile
probes
tools threads-v5.6 2020-01-29 19:38:34 -08:00
vdso kbuild: rename hostprogs-y/always to hostprogs/always-y 2020-02-04 01:53:07 +09:00
vfp
xen dma-mapping updates for 5.5-rc1 2019-11-28 11:16:43 -08:00
Kconfig ARM development updates for 5.6-rc1: 2020-02-04 13:12:19 +00:00
Kconfig-nommu
Kconfig.debug ARM: debug-ll: select DEBUG_AT91_RM9200_DBGU for sam9x60 2019-12-10 00:45:30 +01:00
Makefile