Browse Source
Merge pull request #1892 from sandrine-bailleux-arm/sb/pauth
Pointer authentication fixes
pull/1897/head
Soby Mathew
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
3 additions and
5 deletions
-
lib/el3_runtime/aarch64/context.S
-
plat/arm/common/aarch64/arm_pauth.c
|
|
@ -356,7 +356,7 @@ func pauth_context_restore |
|
|
|
msr APIAKeyLo_EL1, x9 |
|
|
|
msr APIAKeyHi_EL1, x10 |
|
|
|
|
|
|
|
ldp x9, x10, [x11, #CTX_PACIAKEY_LO] |
|
|
|
ldp x9, x10, [x11, #CTX_PACIBKEY_LO] |
|
|
|
msr APIBKeyLo_EL1, x9 |
|
|
|
msr APIBKeyHi_EL1, x10 |
|
|
|
|
|
|
|
|
|
@ -9,11 +9,9 @@ |
|
|
|
|
|
|
|
/*
|
|
|
|
* Instruction pointer authentication key A. The low 64-bit are at [0], and the |
|
|
|
* high bits at [1]. They are run-time constants so they are placed in the |
|
|
|
* rodata section. They are written before MMU is turned on and the permissions |
|
|
|
* are effective. |
|
|
|
* high bits at [1]. |
|
|
|
*/ |
|
|
|
uint64_t plat_apiakey[2] __section("rodata.apiakey"); |
|
|
|
uint64_t plat_apiakey[2]; |
|
|
|
|
|
|
|
/*
|
|
|
|
* This is only a toy implementation to generate a seemingly random 128-bit key |
|
|
|