Vladimir Murzin
d8945878de
ARM: 8830/1: NOMMU: Toggle only bits in EXC_RETURN we are really care of
...
[ Upstream commit 72cd4064fc ]
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 >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2019-04-05 22:33:12 +02:00
..
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-04-25 10:40:51 -05:00
2012-11-06 19:47:35 +00:00
2018-04-16 15:16:48 -07:00
2014-07-18 12:29:04 +01:00
2015-08-18 14:00:30 +01:00
2018-03-16 20:44:12 +01:00
2017-03-17 10:01:26 +00:00
2014-07-18 12:29:04 +01:00
2015-11-26 22:12:26 +00:00
2013-12-29 12:32:47 +00:00
2017-02-28 11:06:17 +00:00
2014-07-18 12:29:04 +01:00
2017-08-14 16:22:55 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00
2018-12-21 14:15:21 +01:00
2018-12-21 14:15:21 +01:00
2012-03-28 18:30:01 +01:00
2015-12-02 23:57:54 +00:00
2018-04-05 21:36:26 -07:00
2018-04-05 21:36:26 -07:00
2018-04-05 21:36:26 -07:00
2018-05-08 13:02:42 +02:00
2019-03-23 20:09:48 +01:00
2017-11-02 11:10:55 +01:00
2018-01-21 15:32:20 +00:00
2017-11-02 11:10:55 +01:00
2018-04-05 21:36:26 -07:00
2018-08-17 16:20:28 -07:00
2017-11-02 11:10:55 +01:00
2018-04-05 21:36:26 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2015-11-09 15:11:24 -08:00
2015-06-24 17:49:41 -07:00
2017-12-17 22:16:20 +00:00
2018-07-11 22:57:57 +01:00
2017-11-02 11:10:55 +01:00
2018-09-19 10:44:14 +01:00
2018-07-30 11:45:52 +01:00
2014-05-30 00:47:23 +01:00
2017-11-02 11:10:55 +01:00
2018-06-05 10:03:27 +01:00
2017-11-02 11:10:55 +01:00
2018-04-11 10:28:37 -07:00
2017-06-29 23:10:12 +01:00
2018-07-30 11:45:51 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-05-08 17:15:13 -07:00
2018-06-12 16:19:22 -07:00
2017-11-02 11:10:55 +01:00
2018-05-19 11:53:46 +01:00
2018-05-19 11:53:46 +01:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-05-03 23:22:27 +01:00
2015-03-28 15:46:14 +00:00
2015-04-14 22:28:25 +01:00
2015-04-14 22:28:25 +01:00
2015-05-03 23:22:09 +01:00
2015-05-03 23:22:09 +01:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2015-05-03 23:23:09 +01:00
2019-02-20 10:25:38 +01:00
2015-12-01 21:44:25 +01:00
2015-03-28 15:46:14 +00:00
2015-03-28 15:46:14 +00:00
2013-03-26 09:55:34 +00:00
2015-03-28 15:46:14 +00:00
2018-05-31 10:39:55 +01:00
2017-08-29 13:09:12 +01:00
2019-02-20 10:25:38 +01:00
2018-11-21 09:19:18 +01:00
2019-04-05 22:33:12 +02:00
2015-03-28 15:46:14 +00:00
2017-08-14 16:22:55 +01:00
2018-01-21 15:32:17 +00:00
2015-06-01 23:46:33 +01:00
2018-07-14 16:09:27 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00
2014-07-18 12:29:04 +01:00