From 154af912e8219d93e4297ce420bc0471ebac46f8 Mon Sep 17 00:00:00 2001 From: Anas Nashif Date: Sun, 16 Jun 2019 08:44:04 -0400 Subject: [PATCH] kernel: work_q: error handling When trying to cancel a NULL work queue return -EAGAIN. Signed-off-by: Anas Nashif --- kernel/work_q.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel/work_q.c b/kernel/work_q.c index 1fb18f3ac83..7023f70f07d 100644 --- a/kernel/work_q.c +++ b/kernel/work_q.c @@ -16,6 +16,7 @@ #include #include #include +#include #define WORKQUEUE_THREAD_NAME "workqueue" @@ -54,7 +55,9 @@ void k_delayed_work_init(struct k_delayed_work *work, k_work_handler_t handler) static int work_cancel(struct k_delayed_work *work) { - __ASSERT(work->work_q != NULL, ""); + CHECKIF(work->work_q == NULL) { + return -EAGAIN; + } if (k_work_pending(&work->work)) { /* Remove from the queue if already submitted */