Find a file
Chuck Jordan 6c86ed85fe arc: fix stack corruption caused by firq handling
There are a few problems with the code being repaired here.
1. A seti was used to re-enable all interrupts, even though the
thread being switched to may have had certain interrupt priorities masked.
2. saved status32 already has SC bit if thats wanted, so its ok to just
restore status32 as-is w/o needing to and off anything.
3. the code is difficult to write using kflag and seti because as you
restore registers, there aren't any to use. But we can exploit a
trick where we pretend an interrupt has occured by setting a bit in
AUX_IRQ_ACT, and then use RTIE instruction to restore status32
atomically with branching to return address. Something about the way
this code was written was causing stack corruptings and crashes in an
application that uses a high rate of both FIRQ and Regular interrupts.

Change-Id: Ia7166d51f0e750c07832ab115b7151ce37ee0278
Signed-off-by: Chuck Jordan <cjordan@synopsys.com>
2016-06-01 14:25:01 +00:00
arch arc: fix stack corruption caused by firq handling 2016-06-01 14:25:01 +00:00
boards arduino due: move pinmux code to board definition 2016-05-28 10:45:43 -04:00
doc doc: nRF52 PCA10040 rst markup fixes 2016-05-30 12:43:16 +00:00
drivers sensor: add driver for LSM6DS0 2016-06-01 11:48:50 +00:00
ext ext: Import Nordic MDK header files 2016-05-27 01:38:23 +00:00
include Bluetooth: Add support for using SYS_LOG 2016-06-01 05:04:10 +00:00
kernel nanokernel: Add callback to _nano_timeout once again 2016-06-01 00:35:05 +00:00
lib tinycrypt: Fix discrepancy of ecc_make_key definition and declaration 2016-05-27 11:19:00 +00:00
misc Cleanup whitespace in Kconfig files 2016-05-25 13:28:07 -05:00
net Bluetooth: log: Enable STDOUT_CONSOLE for printf support 2016-06-01 08:21:29 +00:00
samples Bluetooth: Add support for using SYS_LOG 2016-06-01 05:04:10 +00:00
scripts checkpatch: catch changes to MAINTAINERS file 2016-05-31 19:09:14 +00:00
tests Bluetooth: Add support for using SYS_LOG 2016-06-01 05:04:10 +00:00
.checkpatch.conf checkpatch: decrease max line number to 80 2016-05-31 19:09:14 +00:00
.gitattributes First commit 2015-04-10 16:44:37 -07:00
.gitignore build: rename non-generated linker scripts to .ld extension 2016-05-09 18:09:26 +00:00
.gitreview Add a .gitreview file 2016-02-20 14:25:01 +00:00
.mailmap mailmap: Fix a couple of incorrect git author names 2016-05-10 18:45:22 +00:00
Kbuild build: add more dependencies to build process 2016-05-20 18:25:19 +00:00
Kconfig kconfig: Do not put architecture in the title 2016-03-14 16:50:51 -04:00
Kconfig.zephyr Cleanup whitespace in Kconfig files 2016-05-25 13:28:07 -05:00
LICENSE add top level Apache 2.0 license file 2016-02-05 20:24:37 -05:00
MAINTAINERS maintainer: update doc file path to accept all under doc/ dir 2016-05-31 15:17:27 -05:00
Makefile Zephyr v1.4.0-rc1 2016-05-29 23:24:24 -04:00
Makefile.inc scripts: add a script to report RAM/ROM usage 2016-05-26 15:19:15 +00:00
zephyr-env.sh zephyr-env.sh: Add a note to indicate the required version of zsh 2016-03-18 22:01:19 +00:00