diff options
author | Tzung-Bi Shih <tzungbi@chromium.org> | 2020-06-10 09:25:06 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-06-10 10:37:28 +0000 |
commit | 808042369ae338d3acfb6867f06cab2907c98cd8 (patch) | |
tree | 9e4c094dc2bb4d9b8b40f9a48550037a95f2160f /core | |
parent | 78b4b148a225e558b34fdff6098f05560ef6a206 (diff) | |
download | chrome-ec-808042369ae338d3acfb6867f06cab2907c98cd8.tar.gz |
core/riscv-rv32i: set volatile for in_interrupt
Given that:
- in_interrupt is modified in interrupt context.
- Some normal task context call in_interrupt_context() and
in_soft_interrupt_context().
To safely share the variable, sets it to volatile.
BRANCH=none
BUG=b:146213943
BUG=b:157521370
BUG=b:156223049
TEST=1. make BOARD=asurada
2. flash_ec --board=asurada --image build/asurada/ec.bin
3. (EC console)> version
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: Ibd1bf9556d8376f6f6389a17cc792a6f21227d4f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2237495
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
Diffstat (limited to 'core')
-rw-r--r-- | core/riscv-rv32i/task.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/core/riscv-rv32i/task.c b/core/riscv-rv32i/task.c index e4feb30eb6..f0bc5924dd 100644 --- a/core/riscv-rv32i/task.c +++ b/core/riscv-rv32i/task.c @@ -165,7 +165,7 @@ static uint32_t tasks_enabled = BIT(TASK_ID_HOOKS) | BIT(TASK_ID_IDLE); int start_called; /* Has task swapping started */ /* in interrupt context */ -static int in_interrupt; +static volatile int in_interrupt; /* Interrupt number of EC modules */ volatile int ec_int; /* Interrupt group of EC INTC modules */ |