On 03/23/2015 07:05 PM, Paolo Bonzini wrote:
Capture the explicit setting of "usb=no" into a separate bool, and
use it to skip the update of machine->usb in the board init function.
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/core/machine.c | 1 +
hw/ppc/mac_newworld.c | 2 +-
hw/ppc/spapr.c | 2 +-
include/hw/boards.h | 1 +
4 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index cb1185a..25c45e6 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -223,6 +223,7 @@ static void machine_set_usb(Object *obj, bool
value, Error **errp)
MachineState *ms = MACHINE(obj);
ms->usb = value;
+ ms->usb_disabled = !value;
Maybe is too late now, but I really not like this pollution of
MachineState
with 'usb_disabled'. (Imagine we have this kind of fields for lots of
objects and lots
of corner cases...)
I know it comes to solve a bug, but we talked about it in another mail
thread and
this change in semantics was approved.
Let me explain *why* I don't like it.
1. We add an "usb_disabled" field to a base class (actually object)
of all the machines and the only place it is interesting is
for 2 machines on ppc.
2. Even for these 2 machines, the scenario of defaults=on and usb=off
is not practical.