From 6b84b1db2d69609a783ab2fd6990c9e72903d367 Mon Sep 17 00:00:00 2001 From: Rasmus Villemoes Date: Fri, 28 Oct 2022 13:50:51 +0200 Subject: [PATCH] cyclic: drop redundant cyclic_ready flag We're already relying on gd->cyclic being NULL before cyclic_init() is called - i.e., we're relying on all of gd being zeroed before entering any C code. And when we do populate gd->cyclic, its ->cyclic_ready member is automatically set to true. So we can actually just rely on testing gd->cyclic itself. The only wrinkle is that cyclic_uninit() actually did set ->cyclic_ready to false. However, since it doesn't free gd->cyclic, the cyclic infrastructure is actually still ready (i.e., the list_head is properly initialized as an empty list). Signed-off-by: Rasmus Villemoes Reviewed-by: Stefan Roese Tested-by: Stefan Roese Tested-by: Tim Harvey # imx8mm-venice-* --- common/cyclic.c | 6 ++---- include/cyclic.h | 2 -- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/common/cyclic.c b/common/cyclic.c index ff75c8c..d6f11b0 100644 --- a/common/cyclic.c +++ b/common/cyclic.c @@ -30,7 +30,7 @@ struct cyclic_info *cyclic_register(cyclic_func_t func, uint64_t delay_us, { struct cyclic_info *cyclic; - if (!gd->cyclic->cyclic_ready) { + if (!gd->cyclic) { pr_debug("Cyclic IF not ready yet\n"); return NULL; } @@ -112,7 +112,7 @@ void schedule(void) * schedule() might get called very early before the cyclic IF is * ready. Make sure to only call cyclic_run() when it's initalized. */ - if (gd && gd->cyclic && gd->cyclic->cyclic_ready) + if (gd && gd->cyclic) cyclic_run(); } @@ -122,7 +122,6 @@ int cyclic_uninit(void) list_for_each_entry_safe(cyclic, tmp, &gd->cyclic->cyclic_list, list) cyclic_unregister(cyclic); - gd->cyclic->cyclic_ready = false; return 0; } @@ -137,7 +136,6 @@ int cyclic_init(void) memset(gd->cyclic, '\0', size); INIT_LIST_HEAD(&gd->cyclic->cyclic_list); - gd->cyclic->cyclic_ready = true; return 0; } diff --git a/include/cyclic.h b/include/cyclic.h index 50427ba..263b74d 100644 --- a/include/cyclic.h +++ b/include/cyclic.h @@ -18,11 +18,9 @@ * struct cyclic_drv - Cyclic driver internal data * * @cyclic_list: Cylic list node - * @cyclic_ready: Flag if cyclic infrastructure is ready */ struct cyclic_drv { struct list_head cyclic_list; - bool cyclic_ready; }; /** -- 2.7.4