Message ID | 20190805071038.32146-5-alxndr@bu.edu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [RFC,v2,01/17] fuzz: Move initialization from main to qemu_init | expand |
On 05/08/19 09:11, Oleinik, Alexander wrote: > Signed-off-by: Alexander Oleinik <alxndr@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 <pbonzini@redhat.com>
On Mon, Aug 05, 2019 at 07:11:05AM +0000, Oleinik, Alexander wrote: > Signed-off-by: Alexander Oleinik <alxndr@bu.edu> > --- > util/module.c | 7 +++++++ > 1 file changed, 7 insertions(+) Why is this necessary? Existing callers only invoke this function once for each type. Please include justification in the commit description. Stefan
On Fri, 2019-08-09 at 10:04 +0100, Stefan Hajnoczi wrote: > On Mon, Aug 05, 2019 at 07:11:05AM +0000, Oleinik, Alexander wrote: > > Signed-off-by: Alexander Oleinik <alxndr@bu.edu> > > --- > > util/module.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > Why is this necessary? Existing callers only invoke this function > once > for each type. This was suggested by Paolo in Message-ID: fad9d12a-39df-e2fa-064b-5132add9daff@redhat.com I need to initialize the QOS module in the fuzzer main to identify the qemu arguments, prior to running vl.c:main. > Please include justification in the commit description. Will do > Stefan
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
Signed-off-by: Alexander Oleinik <alxndr@bu.edu> --- util/module.c | 7 +++++++ 1 file changed, 7 insertions(+)