include/hw/boards.h | 1 - hw/core/machine.c | 1 - hw/ppc/mac_newworld.c | 3 +-- hw/ppc/spapr.c | 3 +-- 4 files changed, 2 insertions(+), 6 deletions(-)
Only add default devices checking defaults_enabled().
Remove the unused usb_disabled field in MachineState.
Based-on: <20250526112346.48744-1-philmd@linaro.org>
"hw/ppc: Fix --without-default-devices build"
Philippe Mathieu-Daudé (3):
hw/ppc/spapr: Only create default devices when requested
hw/ppc/mac_newworld: Only create default devices when requested
hw/boards: Remove MachineState::usb_disabled field
include/hw/boards.h | 1 -
hw/core/machine.c | 1 -
hw/ppc/mac_newworld.c | 3 +--
hw/ppc/spapr.c | 3 +--
4 files changed, 2 insertions(+), 6 deletions(-)
--
2.47.1
On Mon, 26 May 2025, Philippe Mathieu-Daudé wrote: > Only add default devices checking defaults_enabled(). > Remove the unused usb_disabled field in MachineState. At least for Mac machines this may be more complex. I think there is a -usb switch to enable/disable USB independently of defaults and due to some bugs some MacOS versions may need this to boot so maybe it's used. Regards, BALATON Zoltan > Based-on: <20250526112346.48744-1-philmd@linaro.org> > "hw/ppc: Fix --without-default-devices build" > > Philippe Mathieu-Daudé (3): > hw/ppc/spapr: Only create default devices when requested > hw/ppc/mac_newworld: Only create default devices when requested > hw/boards: Remove MachineState::usb_disabled field > > include/hw/boards.h | 1 - > hw/core/machine.c | 1 - > hw/ppc/mac_newworld.c | 3 +-- > hw/ppc/spapr.c | 3 +-- > 4 files changed, 2 insertions(+), 6 deletions(-) > >
On 26/5/25 15:18, BALATON Zoltan wrote: > On Mon, 26 May 2025, Philippe Mathieu-Daudé wrote: >> Only add default devices checking defaults_enabled(). >> Remove the unused usb_disabled field in MachineState. > > At least for Mac machines this may be more complex. I think there is a - > usb switch to enable/disable USB independently of defaults and due to > some bugs some MacOS versions may need this to boot so maybe it's used. If the user asks -usb off, we shouldn't re-enable it in the shadow. If a configuration isn't usable, we have to report a configuration error, possibly providing hints about what should be fixed. > > Regards, > BALATON Zoltan > >> Based-on: <20250526112346.48744-1-philmd@linaro.org> >> "hw/ppc: Fix --without-default-devices build" >> >> Philippe Mathieu-Daudé (3): >> hw/ppc/spapr: Only create default devices when requested >> hw/ppc/mac_newworld: Only create default devices when requested >> hw/boards: Remove MachineState::usb_disabled field >> >> include/hw/boards.h | 1 - >> hw/core/machine.c | 1 - >> hw/ppc/mac_newworld.c | 3 +-- >> hw/ppc/spapr.c | 3 +-- >> 4 files changed, 2 insertions(+), 6 deletions(-) >> >>
On 5/26/25 16:20, Philippe Mathieu-Daudé wrote:
> On 26/5/25 15:18, BALATON Zoltan wrote:
>> On Mon, 26 May 2025, Philippe Mathieu-Daudé wrote:
>>> Only add default devices checking defaults_enabled().
>>> Remove the unused usb_disabled field in MachineState.
>>
>> At least for Mac machines this may be more complex. I think there is a
>> - usb switch to enable/disable USB independently of defaults and due
>> to some bugs some MacOS versions may need this to boot so maybe it's
>> used.
>
> If the user asks -usb off, we shouldn't re-enable it in the shadow.
And if the user asks -usb on, you shouldn't disable it. My
understanding is that adding
- if (!has_adb || machine_arch == ARCH_MAC99_U3) {
+ if ((!has_adb || machine_arch == ARCH_MAC99_U3) && defaults_enabled()) {
disables USB completely when -nodefaults.
If you want to remove usb_disabled, change machine->usb to ON_OFF_AUTO
and query
static inline bool machine_usb_enabled(MachineState *ms)
{
return (defaults_enabled()
? machine->usb != ON_OFF_AUTO_OFF
: machine->usb == ON_OFF_AUTO_ON);
}
instead of machine->usb (even better, change the name of the field so that
it causes a compilation error).
Paolo
On 27/05/2025 18:19, Paolo Bonzini wrote:
> On 5/26/25 16:20, Philippe Mathieu-Daudé wrote:
>> On 26/5/25 15:18, BALATON Zoltan wrote:
>>> On Mon, 26 May 2025, Philippe Mathieu-Daudé wrote:
>>>> Only add default devices checking defaults_enabled().
>>>> Remove the unused usb_disabled field in MachineState.
>>>
>>> At least for Mac machines this may be more complex. I think there is a - usb
>>> switch to enable/disable USB independently of defaults and due to some bugs some
>>> MacOS versions may need this to boot so maybe it's used.
>>
>> If the user asks -usb off, we shouldn't re-enable it in the shadow.
>
> And if the user asks -usb on, you shouldn't disable it. My
> understanding is that adding
>
> - if (!has_adb || machine_arch == ARCH_MAC99_U3) {
> + if ((!has_adb || machine_arch == ARCH_MAC99_U3) && defaults_enabled()) {
>
> disables USB completely when -nodefaults.
>
> If you want to remove usb_disabled, change machine->usb to ON_OFF_AUTO
> and query
>
> static inline bool machine_usb_enabled(MachineState *ms)
> {
> return (defaults_enabled()
> ? machine->usb != ON_OFF_AUTO_OFF
> : machine->usb == ON_OFF_AUTO_ON);
> }
>
> instead of machine->usb (even better, change the name of the field so that
> it causes a compilation error).
I have a feeling that this logic was added a while back to allow a build
--without-default-devices to work? However disabling USB doesn't actually make sense
for New World Macs, since the presence of USB ports is one of the ways of
guaranteeing we have a New World Mac. I'm fairly sure I've seen (BSD?) kernel crashes
if the USB ports are not present on the mac99 machine.
If MachineState::usb_disabled is removed completely, is it still possible to always
have the USB ports enabled and the keyboard/mouse plugged into the mac99 machine?
ATB,
Mark.
On 5/26/25 16:20, Philippe Mathieu-Daudé wrote:
> On 26/5/25 15:18, BALATON Zoltan wrote:
>> On Mon, 26 May 2025, Philippe Mathieu-Daudé wrote:
>>> Only add default devices checking defaults_enabled().
>>> Remove the unused usb_disabled field in MachineState.
>>
>> At least for Mac machines this may be more complex. I think there is a
>> - usb switch to enable/disable USB independently of defaults and due
>> to some bugs some MacOS versions may need this to boot so maybe it's
>> used.
>
> If the user asks -usb off, we shouldn't re-enable it in the shadow.
And if the user asks -usb on, you shouldn't disable it. My
understanding is that adding
- if (!has_adb || machine_arch == ARCH_MAC99_U3) {
+ if ((!has_adb || machine_arch == ARCH_MAC99_U3) && defaults_enabled()) {
disables USB completely when -nodefaults.
If you want to remove usb_disabled, change machine->usb to ON_OFF_AUTO
and query
static inline bool machine_usb_enabled(MachineState *ms)
{
return (defaults_enabled()
? machine->usb != ON_OFF_AUTO_OFF
: machine->usb == ON_OFF_AUTO_ON);
}
instead of machine->usb (even better, change the name of the field so that
it causes a compilation error).
Paolo
(forgot to Cc Thomas) On 26/5/25 15:00, Philippe Mathieu-Daudé wrote: > Only add default devices checking defaults_enabled(). > Remove the unused usb_disabled field in MachineState. > > Based-on: <20250526112346.48744-1-philmd@linaro.org> > "hw/ppc: Fix --without-default-devices build" > > Philippe Mathieu-Daudé (3): > hw/ppc/spapr: Only create default devices when requested > hw/ppc/mac_newworld: Only create default devices when requested > hw/boards: Remove MachineState::usb_disabled field > > include/hw/boards.h | 1 - > hw/core/machine.c | 1 - > hw/ppc/mac_newworld.c | 3 +-- > hw/ppc/spapr.c | 3 +-- > 4 files changed, 2 insertions(+), 6 deletions(-) >
© 2016 - 2025 Red Hat, Inc.