accel: Move accel init/allowed code to separate function

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Eduardo Habkost 2014-09-26 17:45:28 -03:00 committed by Paolo Bonzini
parent 32592e112f
commit d95c8527e9
1 changed files with 12 additions and 3 deletions

15
accel.c
View File

@ -57,6 +57,17 @@ static AccelClass *accel_find(const char *opt_name)
return ac; return ac;
} }
static int accel_init(AccelClass *acc, MachineClass *mc)
{
int ret;
*(acc->allowed) = true;
ret = acc->init(mc);
if (ret < 0) {
*(acc->allowed) = false;
}
return ret;
}
int configure_accelerator(MachineClass *mc) int configure_accelerator(MachineClass *mc)
{ {
const char *p; const char *p;
@ -87,14 +98,12 @@ int configure_accelerator(MachineClass *mc)
acc->name); acc->name);
continue; continue;
} }
*(acc->allowed) = true; ret = accel_init(acc, mc);
ret = acc->init(mc);
if (ret < 0) { if (ret < 0) {
init_failed = true; init_failed = true;
fprintf(stderr, "failed to initialize %s: %s\n", fprintf(stderr, "failed to initialize %s: %s\n",
acc->name, acc->name,
strerror(-ret)); strerror(-ret));
*(acc->allowed) = false;
} else { } else {
accel_initialised = true; accel_initialised = true;
} }