linux/arch/arm/mm
Vladimir Murzin 72cd4064fc ARM: 8830/1: NOMMU: Toggle only bits in EXC_RETURN we are really care of
ARMv8M introduces support for Security extension to M class, among
other things it affects exception handling, especially, encoding of
EXC_RETURN.

The new bits have been added:

Bit [6]	Secure or Non-secure stack
Bit [5]	Default callee register stacking
Bit [0]	Exception Secure

which conflicts with hard-coded value of EXC_RETURN:

In fact, we only care of few bits:

Bit [3]	 Mode (0 - Handler, 1 - Thread)
Bit [2]	 Stack pointer selection (0 - Main, 1 - Process)

We can toggle only those bits and left other bits as they were on
exception entry.

It is basically, what patch does - saves EXC_RETURN when we do
transition form Thread to Handler mode (it is first svc), so later
saved value is used instead of EXC_RET_THREADMODE_PROCESSSTACK.

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 21:44:19 +00:00
..
abort-ev4.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
abort-ev4t.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
abort-ev5t.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
abort-ev5tj.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
abort-ev6.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
abort-ev7.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
abort-lv4t.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
abort-macro.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
abort-nommu.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
alignment.c signal/arm: Use force_sig_fault where appropriate 2018-09-27 21:57:39 +02:00
cache-aurora-l2.h
cache-b15-rac.c ARM: B15: Update to support Brahma-B53 2018-04-16 15:16:48 -07:00
cache-fa.S
cache-feroceon-l2.c
cache-l2x0-pmu.c perf: Fix sibling iteration 2018-03-16 20:44:12 +01:00
cache-l2x0.c ARM: 8659/1: l2c: allow CA9 optimizations to be disabled 2017-03-17 10:01:26 +00:00
cache-nop.S
cache-tauros2.c ARM: l2c: tauros2: use descriptive definitions for register bits 2015-11-26 22:12:26 +00:00
cache-tauros3.h
cache-uniphier.c ARM: 8652/1: cache-uniphier: clean up active way setup code 2017-02-28 11:06:17 +00:00
cache-v4.S
cache-v4wb.S ARM: align .data section 2017-08-14 16:22:55 +01:00
cache-v4wt.S
cache-v6.S
cache-v7.S ARM: 8814/1: mm: improve/fix ARM v7_dma_inv_range() unaligned address handling 2018-12-04 22:38:32 +00:00
cache-v7m.S ARM: 8815/1: V7M: align v7m_dma_inv_range() with v7 counterpart 2018-12-04 22:38:33 +00:00
cache-xsc3l2.c
context.c ARM: 8465/1: mm: keep reserved ASIDs in sync with mm after multiple rollovers 2015-12-02 23:57:54 +00:00
copypage-fa.c ARM: 8805/2: remove unneeded naked function usage 2018-11-08 10:57:09 +00:00
copypage-feroceon.c ARM: 8805/2: remove unneeded naked function usage 2018-11-08 10:57:09 +00:00
copypage-v4mc.c ARM: 8805/2: remove unneeded naked function usage 2018-11-08 10:57:09 +00:00
copypage-v4wb.c ARM: 8805/2: remove unneeded naked function usage 2018-11-08 10:57:09 +00:00
copypage-v4wt.c ARM: 8805/2: remove unneeded naked function usage 2018-11-08 10:57:09 +00:00
copypage-v6.c mm: fix races between swapoff and flush dcache 2018-04-05 21:36:26 -07:00
copypage-xsc3.c ARM: 8811/1: always list both ldrd/strd registers explicitly 2018-11-12 10:51:54 +00:00
copypage-xscale.c ARM: 8811/1: always list both ldrd/strd registers explicitly 2018-11-12 10:51:54 +00:00
dma-mapping-nommu.c dma-mapping: bypass indirect calls for dma-direct 2018-12-13 21:06:18 +01:00
dma-mapping.c ARM: 8818/1: dma-mapping: update comment about handling dma_ops when detaching from IOMMU 2019-02-01 21:44:06 +00:00
dma.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dump.c ARM: 8737/1: mm: dump: add checking for writable and executable 2018-01-21 15:32:20 +00:00
extable.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fault-armv.c mm: fix races between swapoff and flush dcache 2018-04-05 21:36:26 -07:00
fault.c ARM: 8807/1: mm: Facilitate debugging CONFIG_KUSER_HELPERS disabled 2018-11-08 10:57:10 +00:00
fault.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
flush.c mm: fix races between swapoff and flush dcache 2018-04-05 21:36:26 -07:00
fsr-2level.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fsr-3level.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
highmem.c kmap_atomic_to_page() has no users, remove it 2015-11-09 15:11:24 -08:00
hugetlbpage.c
idmap.c ARM: 8817/1: mm: skip cleaning of idmap page tables on LPAE capable cores 2019-02-01 21:44:05 +00:00
init.c ARM: 8826/1: mm: initialize pfn limits with find_limits() 2019-02-01 21:44:12 +00:00
iomap.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ioremap.c ARM: 8799/1: mm: fix pci_ioremap_io() offset check 2018-09-19 10:44:14 +01:00
Kconfig ARM: 8784/1: NOMMU: Allow enter in Hyp mode 2018-07-30 11:45:52 +01:00
l2c-common.c
l2c-l2x0-resume.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile Merge branches 'fixes', 'misc' and 'spectre' into for-linus 2018-06-05 10:03:27 +01:00
mm.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mmap.c exec: pass stack rlimit into mm layout functions 2018-04-11 10:28:37 -07:00
mmu.c memblock: rename memblock_alloc{_nid,_try_nid} to memblock_phys_alloc* 2018-10-31 08:54:15 -07:00
nommu.c ARM: 8783/1: NOMMU: Extend check for VBAR support 2018-07-30 11:45:51 +01:00
pabort-legacy.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pabort-v6.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pabort-v7.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pageattr.c arm: use set_memory.h header 2017-05-08 17:15:13 -07:00
pgd.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
physaddr.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pmsa-v7.c ARM: 8754/1: NOMMU: Move PMSAv7 MPU under it's own namespace 2018-05-19 11:53:46 +01:00
pmsa-v8.c ARM: 8757/1: NOMMU: Support PMSAv8 MPU 2018-05-19 11:53:46 +01:00
proc-arm7tdmi.S
proc-arm9tdmi.S
proc-arm720.S
proc-arm740.S
proc-arm920.S
proc-arm922.S
proc-arm925.S
proc-arm926.S
proc-arm940.S
proc-arm946.S
proc-arm1020.S
proc-arm1020e.S
proc-arm1022.S
proc-arm1026.S
proc-fa526.S
proc-feroceon.S
proc-macros.S ARM: fix the cockup in the previous patch 2018-12-07 13:13:42 +00:00
proc-mohawk.S ARM: mohawk: allow building with MMU disabled 2015-12-01 21:44:25 +01:00
proc-sa110.S
proc-sa1100.S
proc-syms.c
proc-v6.S
proc-v7-2level.S ARM: spectre-v2: harden branch predictor on context switches 2018-05-31 10:39:55 +01:00
proc-v7-3level.S ARM: 8690/1: lpae: build TTB control register value from scratch in v7_ttb_setup 2017-08-29 13:09:12 +01:00
proc-v7-bugs.c ARM: spectre-v2: per-CPU vtables to work around big.Little systems 2018-11-12 10:51:01 +00:00
proc-v7.S Merge branches 'misc', 'sa1100-for-next' and 'spectre' into for-linus 2019-01-02 10:37:05 +00:00
proc-v7m.S ARM: 8830/1: NOMMU: Toggle only bits in EXC_RETURN we are really care of 2019-02-01 21:44:19 +00:00
proc-xsc3.S
proc-xscale.S ARM: align .data section 2017-08-14 16:22:55 +01:00
ptdump_debugfs.c ARM: 8735/1: mm: dump: make page table dumping reusable 2018-01-21 15:32:17 +00:00
pv-fixup-asm.S ARM: 8811/1: always list both ldrd/strd registers explicitly 2018-11-12 10:51:54 +00:00
tcm.h ARM: tcm: ensure inline stub functions are marked static 2018-07-14 16:09:27 +01:00
tlb-fa.S
tlb-v4.S
tlb-v4wb.S
tlb-v4wbi.S
tlb-v6.S
tlb-v7.S