Message ID | 20230206140809.26028-2-farosas@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Kconfig vs. default devices | expand |
On 6/2/23 15:08, Fabiano Rosas wrote: > Currently the isa-parallel driver is always added by default > regardless of the presence of the actual code in the build, which can > lead to a crash: > > qemu-system-i386: unknown type 'isa-parallel' > Aborted (core dumped) > > Check for the presence of the QOM class and do not include > isa-parallel by default if it's not found. > > Signed-off-by: Fabiano Rosas <farosas@suse.de> > --- > softmmu/vl.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/softmmu/vl.c b/softmmu/vl.c > index 9177d95d4e..614e6cf66e 100644 > --- a/softmmu/vl.c > +++ b/softmmu/vl.c > @@ -1269,7 +1269,8 @@ static void qemu_disable_default_devices(void) > if (!has_defaults || machine_class->no_serial) { > default_serial = 0; > } > - if (!has_defaults || machine_class->no_parallel) { > + if (!has_defaults || machine_class->no_parallel || > + !object_class_by_name("isa-parallel")) { > default_parallel = 0; > } > if (!has_defaults || machine_class->no_floppy) { How is isa-parallel different, why not the other defaults?
Philippe Mathieu-Daudé <philmd@linaro.org> writes: > On 6/2/23 15:08, Fabiano Rosas wrote: >> Currently the isa-parallel driver is always added by default >> regardless of the presence of the actual code in the build, which can >> lead to a crash: >> >> qemu-system-i386: unknown type 'isa-parallel' >> Aborted (core dumped) >> >> Check for the presence of the QOM class and do not include >> isa-parallel by default if it's not found. >> >> Signed-off-by: Fabiano Rosas <farosas@suse.de> >> --- >> softmmu/vl.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/softmmu/vl.c b/softmmu/vl.c >> index 9177d95d4e..614e6cf66e 100644 >> --- a/softmmu/vl.c >> +++ b/softmmu/vl.c >> @@ -1269,7 +1269,8 @@ static void qemu_disable_default_devices(void) >> if (!has_defaults || machine_class->no_serial) { >> default_serial = 0; >> } >> - if (!has_defaults || machine_class->no_parallel) { >> + if (!has_defaults || machine_class->no_parallel || >> + !object_class_by_name("isa-parallel")) { >> default_parallel = 0; >> } >> if (!has_defaults || machine_class->no_floppy) { > > How is isa-parallel different, why not the other defaults? I doesn't need to be different, I did it like this because I expected to solve the others in the same way. Peter also flagged the inconsistency, I'll add a Kconfig dependence like the others. As to why the other defaults don't have this issue: serial - for x86, already selected by CONFIG_PC; not used on arm; parallel - for x86, should be selected by CONFIG_PC, I'll fix that on v2; not used on arm; monitor - built in with char.c; floppy - built in with blockdev.c; sdcard - built in with blockdev.c; cdrom - uses mc->block_default_type, so the CONFIG corresponding to that device should be selected. net - verification is only done later during machine init, so the machine will need to provide a fallback; vga - uses mc->default_display, so the CONFIG corresponding to that device should be selected. These last three are addressed in other patches in this series (VGA_PCI, VIRTIO_*).
diff --git a/softmmu/vl.c b/softmmu/vl.c index 9177d95d4e..614e6cf66e 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -1269,7 +1269,8 @@ static void qemu_disable_default_devices(void) if (!has_defaults || machine_class->no_serial) { default_serial = 0; } - if (!has_defaults || machine_class->no_parallel) { + if (!has_defaults || machine_class->no_parallel || + !object_class_by_name("isa-parallel")) { default_parallel = 0; } if (!has_defaults || machine_class->no_floppy) {
Currently the isa-parallel driver is always added by default regardless of the presence of the actual code in the build, which can lead to a crash: qemu-system-i386: unknown type 'isa-parallel' Aborted (core dumped) Check for the presence of the QOM class and do not include isa-parallel by default if it's not found. Signed-off-by: Fabiano Rosas <farosas@suse.de> --- softmmu/vl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)