summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-08-05 12:32:34 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-08-05 12:32:34 +0000
commit1ea6daf01ecf3f1bf1dcd182482552ff1d33e9f4 (patch)
tree7c3b8de64178906f1e43c71fa37619607f808e3f /firmware
parentd1af1c0c3c996a8a81856826f723faebca268d50 (diff)
downloadrockbox-1ea6daf01ecf3f1bf1dcd182482552ff1d33e9f4.zip
rockbox-1ea6daf01ecf3f1bf1dcd182482552ff1d33e9f4.tar.gz
rockbox-1ea6daf01ecf3f1bf1dcd182482552ff1d33e9f4.tar.bz2
rockbox-1ea6daf01ecf3f1bf1dcd182482552ff1d33e9f4.tar.xz
Perform writeback before starting thread on another core or stack munging may not be coherent.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14194 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/thread.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/firmware/thread.c b/firmware/thread.c
index eba27b7..a4981af 100644
--- a/firmware/thread.c
+++ b/firmware/thread.c
@@ -888,6 +888,10 @@ struct thread_entry*
#if NUM_CORES > 1
thread->core = core;
+
+ /* Writeback stack munging or anything else before starting */
+ if (core != CURRENT_CORE)
+ flush_icache();
#endif
regs = &thread->context;