Commit bc06c11a authored by 李澍非 's avatar 李澍非
Browse files

module:check module wasn't already initialized

parent d8b92452
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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