diff options
author | Jack Rosenthal <jrosenth@chromium.org> | 2021-09-07 16:50:54 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-09-08 09:04:30 +0000 |
commit | 97e813999aecfa7ee8923f3aa745af75f4c43d5f (patch) | |
tree | 941e9e816b0aea7491ede515b929e82dd4ef1df5 | |
parent | 1bcc3daf150e5718910ea331f78e4477d21864fa (diff) | |
download | chrome-ec-97e813999aecfa7ee8923f3aa745af75f4c43d5f.tar.gz |
zephyr: hooks: use k_work_reschedule to schedule deferred tasks
k_work_reschedule will reschedule a work item if it's already been
scheduled. Switching from k_work_schedule to k_work_reschedule fixes
us the hooks test snag we saw during the v2.6 uprev.
BUG=b:195971523
BRANCH=none
TEST=zmake testall
Signed-off-by: Jack Rosenthal <jrosenth@chromium.org>
Change-Id: I66f6bbad1cd39847e68a178165c9c59922abbb7c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3144378
Commit-Queue: Fabio Baltieri <fabiobaltieri@google.com>
Reviewed-by: Fabio Baltieri <fabiobaltieri@google.com>
-rw-r--r-- | zephyr/shim/src/hooks.c | 2 | ||||
-rw-r--r-- | zephyr/test/hooks/hooks.c | 6 |
2 files changed, 1 insertions, 7 deletions
diff --git a/zephyr/shim/src/hooks.c b/zephyr/shim/src/hooks.c index 8bbd7bed05..79a611812f 100644 --- a/zephyr/shim/src/hooks.c +++ b/zephyr/shim/src/hooks.c @@ -21,7 +21,7 @@ int hook_call_deferred(const struct deferred_data *data, int us) if (us == -1) { k_work_cancel_delayable(work); } else if (us >= 0) { - rv = k_work_schedule(work, K_USEC(us)); + rv = k_work_reschedule(work, K_USEC(us)); if (rv == -EINVAL) { /* Already processing or completed. */ return 0; diff --git a/zephyr/test/hooks/hooks.c b/zephyr/test/hooks/hooks.c index c3b63f5a01..a9e0982e46 100644 --- a/zephyr/test/hooks/hooks.c +++ b/zephyr/test/hooks/hooks.c @@ -111,15 +111,9 @@ static void test_deferred_func_push_out(void) hook_call_deferred(&deferred_func_2_data, DEFERRED_DELAY_US); hook_call_deferred(&deferred_func_2_data, DEFERRED_DELAY_US * 3); k_usleep(DEFERRED_DELAY_US * 2); - /* - * TODO(b/195971523): fails on v2.6 due to timing changes in - * POSIX board. Disable until a real solution is found. - */ -#if 0 zassert_false( deferred_func_2_called, "The deferred function was called, but should not have been"); -#endif k_usleep(DEFERRED_DELAY_US * 2); zassert_true( deferred_func_called, |