On 05/08/19 09:11, Oleinik, Alexander wrote:
> Signed-off-by: Alexander Oleinik <alx...@bu.edu>
> ---
>  util/module.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/util/module.c b/util/module.c
> index 142db7e911..3d4380fd47 100644
> --- a/util/module.c
> +++ b/util/module.c
> @@ -30,6 +30,7 @@ typedef struct ModuleEntry
>  typedef QTAILQ_HEAD(, ModuleEntry) ModuleTypeList;
>  
>  static ModuleTypeList init_type_list[MODULE_INIT_MAX];
> +static bool modules_init_done[MODULE_INIT_MAX];
>  
>  static ModuleTypeList dso_init_list;
>  
> @@ -91,11 +92,17 @@ void module_call_init(module_init_type type)
>      ModuleTypeList *l;
>      ModuleEntry *e;
>  
> +    if (modules_init_done[type]) {
> +        return;
> +    }
> +
>      l = find_type(type);
>  
>      QTAILQ_FOREACH(e, l, node) {
>          e->init();
>      }
> +
> +    modules_init_done[type] = true;
>  }
>  
>  #ifdef CONFIG_MODULES
> 

Reviewed-by: Paolo Bonzini <pbonz...@redhat.com>

Reply via email to