mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-03-13 21:36:57 +00:00
cyclic: use a flag in gd->flags for recursion protection
As a preparation for future patches, use a flag in gd->flags rather than a separate member in (the singleton) struct cyclic_drv to keep track of whether we're already inside cyclic_run(). Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Reviewed-by: Stefan Roese <sr@denx.de> Tested-by: Stefan Roese <sr@denx.de> Tested-by: Tim Harvey <tharvey@gateworks.com> # imx8mm-venice-*
This commit is contained in:
parent
c8d9ff634f
commit
d7de5ef629
3 changed files with 7 additions and 5 deletions
|
@ -66,10 +66,10 @@ void cyclic_run(void)
|
|||
uint64_t now, cpu_time;
|
||||
|
||||
/* Prevent recursion */
|
||||
if (gd->cyclic->cyclic_running)
|
||||
if (gd->flags & GD_FLG_CYCLIC_RUNNING)
|
||||
return;
|
||||
|
||||
gd->cyclic->cyclic_running = true;
|
||||
gd->flags |= GD_FLG_CYCLIC_RUNNING;
|
||||
list_for_each_entry_safe(cyclic, tmp, &gd->cyclic->cyclic_list, list) {
|
||||
/*
|
||||
* Check if this cyclic function needs to get called, e.g.
|
||||
|
@ -99,7 +99,7 @@ void cyclic_run(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
gd->cyclic->cyclic_running = false;
|
||||
gd->flags &= ~GD_FLG_CYCLIC_RUNNING;
|
||||
}
|
||||
|
||||
void schedule(void)
|
||||
|
|
|
@ -650,6 +650,10 @@ enum gd_flags {
|
|||
* @GD_FLG_FDT_CHANGED: Device tree change has been detected by tests
|
||||
*/
|
||||
GD_FLG_FDT_CHANGED = 0x100000,
|
||||
/**
|
||||
* GD_FLG_CYCLIC_RUNNING: cyclic_run is in progress
|
||||
*/
|
||||
GD_FLG_CYCLIC_RUNNING = 0x200000,
|
||||
};
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
|
|
@ -19,12 +19,10 @@
|
|||
*
|
||||
* @cyclic_list: Cylic list node
|
||||
* @cyclic_ready: Flag if cyclic infrastructure is ready
|
||||
* @cyclic_running: Flag if cyclic infrastructure is running
|
||||
*/
|
||||
struct cyclic_drv {
|
||||
struct list_head cyclic_list;
|
||||
bool cyclic_ready;
|
||||
bool cyclic_running;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue