Skip to content

Commit dca0e24

Browse files
Florian Vaussardgalak
authored andcommitted
kernel: arm: Increase idle stack size to fix corruption by FP_SHARING
When enabling CONFIG_FP_SHARING on ARM, 64 extra bytes are necessary on the stack of each task in order to save FPU registers S16 to S31. In the case of the idle stack, the default value of 256 bytes is too small. As described in ZEP-1470, when the idle task is scheduled out, floating point registers are saved, which corrupts the stack frame (especially the saved PC value). When scheduling the idle task, the restored PC will jump to nowhere, leading to a Usage Fault. Increase the size of the idle stack by 64 bytes to fix this issue. JIRA: ZEP-1470 Change-Id: Ib800cd51e5189dda8bf59332db661c21399db3e3 Signed-off-by: Florian Vaussard <[email protected]> Signed-off-by: Kumar Gala <[email protected]>
1 parent 1441825 commit dca0e24

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

kernel/unified/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ config IDLE_STACK_SIZE
134134
int
135135
prompt "Size of stack for idle thread"
136136
default 256
137-
default 320 if ARC
137+
default 320 if ARC || (ARM && CPU_HAS_FPU)
138138
help
139139
Depending on the work that the idle task must do, most likely due to
140140
power management but possibly to other features like system event

0 commit comments

Comments
 (0)