[PATCH 2/5] cyclic: drop redundant cyclic_ready flag

Stefan Roese sr at denx.de
Fri Oct 28 16:04:46 CEST 2022


On 28.10.22 13:50, Rasmus Villemoes wrote:
> 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 <rasmus.villemoes at prevas.dk>
> ---
>   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 ff75c8cadb..d6f11b002e 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 50427baa3f..263b74d89b 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;
>   };
>   
>   /**

Reviewed-by: Stefan Roese <sr at denx.de>
Tested-by: Stefan Roese <sr at denx.de>

Thanks,
Stefan


More information about the U-Boot mailing list