diff options
author | Mark Rutland <mark.rutland@arm.com> | 2016-05-31 12:33:03 +0100 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2016-06-21 17:07:48 +0100 |
commit | 541ec870ef31433018d245614254bd9d810a9ac3 (patch) | |
tree | 77fdcd54e4cccd9e081c2f57e14b60b3304cbb43 /crypto/crypto_user.c | |
parent | 561454e25dfa27aeac9e9d05f88ce7cb43d02d71 (diff) |
arm64: kill ESR_LNX_EXEC
Currently we treat ESR_EL1 bit 24 as software-defined for distinguishing
instruction aborts from data aborts, but this bit is architecturally
RES0 for instruction aborts, and could be allocated for an arbitrary
purpose in future. Additionally, we hard-code the value in entry.S
without the mnemonic, making the code difficult to understand.
Instead, remove ESR_LNX_EXEC, and distinguish aborts based on the esr,
which we already pass to the sole use of ESR_LNX_EXEC. A new helper,
is_el0_instruction_abort() is added to make the logic clear. Any
instruction aborts taken from EL1 will already have been handled by
bad_mode, so we need not handle that case in the helper.
For consistency, the existing permission_fault helper is renamed to
is_permission_fault, and the return type is changed to bool. There
should be no functional changes as the return value was a boolean
expression, and the result is only used in another boolean expression.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Dave P Martin <dave.martin@arm.com>
Cc: Huang Shijie <shijie.huang@arm.com>
Cc: James Morse <james.morse@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'crypto/crypto_user.c')
0 files changed, 0 insertions, 0 deletions