ARM: 8914/1: NOMMU: Fix exc_ret for XIP
authorVladimir Murzin <vladimir.murzin@arm.com>
Thu, 10 Oct 2019 09:12:20 +0000 (10:12 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Thu, 10 Oct 2019 21:23:20 +0000 (22:23 +0100)
commit4c0742f65b4ee466546fd24b71b56516cacd4613
tree729b8210efc070da68736b24e3cd28be45c71d84
parent851140ab0d083c78e5723a8b1cbd258f567a7aff
ARM: 8914/1: NOMMU: Fix exc_ret for XIP

It was reported that 72cd4064fcca "NOMMU: Toggle only bits in
EXC_RETURN we are really care of" breaks NOMMU+XIP combination.
It happens because saved EXC_RETURN gets overwritten when data
section is relocated.

The fix is to propagate EXC_RETURN via register and let relocation
code to commit that value into memory.

Fixes: 72cd4064fcca ("ARM: 8830/1: NOMMU: Toggle only bits in EXC_RETURN we are really care of")
Reported-by: afzal mohammed <afzal.mohd.ma@gmail.com>
Tested-by: afzal mohammed <afzal.mohd.ma@gmail.com>
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
arch/arm/kernel/head-common.S
arch/arm/kernel/head-nommu.S
arch/arm/mm/proc-v7m.S