aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/include/asm/processor.h
diff options
context:
space:
mode:
authorDave Martin <Dave.Martin@arm.com>2017-10-31 11:51:06 -0400
committerWill Deacon <will.deacon@arm.com>2017-11-03 11:24:16 -0400
commit79ab047c75d6a9f95d8840d94f405e20cbacac4b (patch)
treee31e3590d82ebb0c15fe4a57585162c52d1112dc /arch/arm64/include/asm/processor.h
parentbc0ee476036478a85beeed51f0d94c8729fd0544 (diff)
arm64/sve: Support vector length resetting for new processes
It's desirable to be able to reset the vector length to some sane default for new processes, since the new binary and its libraries may or may not be SVE-aware. This patch tracks the desired post-exec vector length (if any) in a new thread member sve_vl_onexec, and adds a new thread flag TIF_SVE_VL_INHERIT to control whether to inherit or reset the vector length. Currently these are inactive. Subsequent patches will provide the capability to configure them. Signed-off-by: Dave Martin <Dave.Martin@arm.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/include/asm/processor.h')
-rw-r--r--arch/arm64/include/asm/processor.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h
index e2f575dbdddd..c6fddb005dc2 100644
--- a/arch/arm64/include/asm/processor.h
+++ b/arch/arm64/include/asm/processor.h
@@ -107,6 +107,7 @@ struct thread_struct {
107 struct fpsimd_state fpsimd_state; 107 struct fpsimd_state fpsimd_state;
108 void *sve_state; /* SVE registers, if any */ 108 void *sve_state; /* SVE registers, if any */
109 unsigned int sve_vl; /* SVE vector length */ 109 unsigned int sve_vl; /* SVE vector length */
110 unsigned int sve_vl_onexec; /* SVE vl after next exec */
110 unsigned long fault_address; /* fault info */ 111 unsigned long fault_address; /* fault info */
111 unsigned long fault_code; /* ESR_EL1 value */ 112 unsigned long fault_code; /* ESR_EL1 value */
112 struct debug_info debug; /* debugging */ 113 struct debug_info debug; /* debugging */