Commit 9fc31ddc authored by Russell King's avatar Russell King
Browse files

ARM: Don't unconditionally bloat thread_info



There is no point reserving space at the bottom of the kernel stack for
per-thread crunch state, and per-thread VFP state if these are not being
supported by the kernel being built.  Remove these members from the
thread union when these features are disabled.
Reported-by: default avatarTim Bird <tim.bird@am.sony.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 89557642
...@@ -59,7 +59,9 @@ struct thread_info { ...@@ -59,7 +59,9 @@ struct thread_info {
__u32 syscall; /* syscall number */ __u32 syscall; /* syscall number */
__u8 used_cp[16]; /* thread used copro */ __u8 used_cp[16]; /* thread used copro */
unsigned long tp_value; unsigned long tp_value;
#ifdef CONFIG_CRUNCH
struct crunch_state crunchstate; struct crunch_state crunchstate;
#endif
union fp_state fpstate __attribute__((aligned(8))); union fp_state fpstate __attribute__((aligned(8)));
union vfp_state vfpstate; union vfp_state vfpstate;
#ifdef CONFIG_ARM_THUMBEE #ifdef CONFIG_ARM_THUMBEE
......
...@@ -59,10 +59,12 @@ int main(void) ...@@ -59,10 +59,12 @@ int main(void)
DEFINE(TI_USED_CP, offsetof(struct thread_info, used_cp)); DEFINE(TI_USED_CP, offsetof(struct thread_info, used_cp));
DEFINE(TI_TP_VALUE, offsetof(struct thread_info, tp_value)); DEFINE(TI_TP_VALUE, offsetof(struct thread_info, tp_value));
DEFINE(TI_FPSTATE, offsetof(struct thread_info, fpstate)); DEFINE(TI_FPSTATE, offsetof(struct thread_info, fpstate));
#ifdef CONFIG_VFP
DEFINE(TI_VFPSTATE, offsetof(struct thread_info, vfpstate)); DEFINE(TI_VFPSTATE, offsetof(struct thread_info, vfpstate));
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
DEFINE(VFP_CPU, offsetof(union vfp_state, hard.cpu)); DEFINE(VFP_CPU, offsetof(union vfp_state, hard.cpu));
#endif #endif
#endif
#ifdef CONFIG_ARM_THUMBEE #ifdef CONFIG_ARM_THUMBEE
DEFINE(TI_THUMBEE_STATE, offsetof(struct thread_info, thumbee_state)); DEFINE(TI_THUMBEE_STATE, offsetof(struct thread_info, thumbee_state));
#endif #endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment