diff --git a/include/kernel.h b/include/kernel.h index abff13d1838..2f4de2f47f0 100644 --- a/include/kernel.h +++ b/include/kernel.h @@ -3104,6 +3104,12 @@ extern void k_free(void *ptr); /* polling API - PRIVATE */ +#ifdef CONFIG_POLL +#define _INIT_OBJ_POLL_EVENT(obj) do { (obj)->poll_event = NULL; } while ((0)) +#else +#define _INIT_OBJ_POLL_EVENT(obj) do { } while ((0)) +#endif + /* private - implementation data created as needed, per-type */ struct _poller { struct k_thread *thread; diff --git a/kernel/fifo.c b/kernel/fifo.c index 5caeabf0eae..49cc08099b9 100644 --- a/kernel/fifo.c +++ b/kernel/fifo.c @@ -52,6 +52,8 @@ void k_fifo_init(struct k_fifo *fifo) sys_slist_init(&fifo->data_q); sys_dlist_init(&fifo->wait_q); + _INIT_OBJ_POLL_EVENT(fifo); + SYS_TRACING_OBJ_INIT(k_fifo, fifo); } diff --git a/kernel/sem.c b/kernel/sem.c index 75a42d9adaa..718d06e6085 100644 --- a/kernel/sem.c +++ b/kernel/sem.c @@ -73,6 +73,9 @@ void k_sem_init(struct k_sem *sem, unsigned int initial_count, sem->count = initial_count; sem->limit = limit; sys_dlist_init(&sem->wait_q); + + _INIT_OBJ_POLL_EVENT(sem); + SYS_TRACING_OBJ_INIT(k_sem, sem); }