* [Qemu-devel] [PATCH 0/2] hw/superio: Fix inconsistent use of Chardev->be
@ 2018-04-19 22:09 Philippe Mathieu-Daudé
2018-04-19 22:09 ` [Qemu-devel] [PATCH 1/2] hw/isa/superio: " Philippe Mathieu-Daudé
2018-04-19 22:09 ` [Qemu-devel] [PATCH 2/2] Revert "Revert "mux: fix ctrl-a b again"" again Philippe Mathieu-Daudé
0 siblings, 2 replies; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-04-19 22:09 UTC (permalink / raw)
To: Marc-André Lureau, Peter Maydell, Paolo Bonzini
Cc: Philippe Mathieu-Daudé, qemu-devel, Daniel P . Berrangé
My commit cd9526ab7c0 break something in the chardev frontend (serial).
Also 4c3119a6e3e does the same with the parallel device.
Fix the broken code and restore Marc-André patch which fixes the ctrl-a+b.
Tested with my usual setup.
Philippe Mathieu-Daudé (2):
hw/isa/superio: Fix inconsistent use of Chardev->be
Revert "Revert "mux: fix ctrl-a b again"" again
chardev/char-mux.c | 1 +
hw/isa/isa-superio.c | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
--
2.17.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be
2018-04-19 22:09 [Qemu-devel] [PATCH 0/2] hw/superio: Fix inconsistent use of Chardev->be Philippe Mathieu-Daudé
@ 2018-04-19 22:09 ` Philippe Mathieu-Daudé
2018-04-20 8:43 ` Peter Maydell
2018-04-19 22:09 ` [Qemu-devel] [PATCH 2/2] Revert "Revert "mux: fix ctrl-a b again"" again Philippe Mathieu-Daudé
1 sibling, 1 reply; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-04-19 22:09 UTC (permalink / raw)
To: Marc-André Lureau, Peter Maydell, Paolo Bonzini
Cc: Philippe Mathieu-Daudé, qemu-devel, Daniel P . Berrangé,
Michael S. Tsirkin
4c3119a6e3e and cd9526ab7c0 introduced an incorrect and inconsistent
use of Chardev->be. Also, this CharBackend member is private and is
not supposed to be accessible.
Fix it by removing the inconsistent check.
Reported-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/isa/isa-superio.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
index b95608a003..08afe44731 100644
--- a/hw/isa/isa-superio.c
+++ b/hw/isa/isa-superio.c
@@ -43,7 +43,7 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
if (!k->parallel.is_enabled || k->parallel.is_enabled(sio, i)) {
/* FIXME use a qdev chardev prop instead of parallel_hds[] */
chr = parallel_hds[i];
- if (chr == NULL || chr->be) {
+ if (chr == NULL) {
name = g_strdup_printf("discarding-parallel%d", i);
chr = qemu_chr_new(name, "null");
} else {
@@ -83,7 +83,7 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
if (!k->serial.is_enabled || k->serial.is_enabled(sio, i)) {
/* FIXME use a qdev chardev prop instead of serial_hds[] */
chr = serial_hds[i];
- if (chr == NULL || chr->be) {
+ if (chr == NULL) {
name = g_strdup_printf("discarding-serial%d", i);
chr = qemu_chr_new(name, "null");
} else {
--
2.17.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 2/2] Revert "Revert "mux: fix ctrl-a b again"" again
2018-04-19 22:09 [Qemu-devel] [PATCH 0/2] hw/superio: Fix inconsistent use of Chardev->be Philippe Mathieu-Daudé
2018-04-19 22:09 ` [Qemu-devel] [PATCH 1/2] hw/isa/superio: " Philippe Mathieu-Daudé
@ 2018-04-19 22:09 ` Philippe Mathieu-Daudé
2018-04-19 22:12 ` Marc-André Lureau
1 sibling, 1 reply; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-04-19 22:09 UTC (permalink / raw)
To: Marc-André Lureau, Peter Maydell, Paolo Bonzini
Cc: Philippe Mathieu-Daudé, qemu-devel, Daniel P . Berrangé
This reverts commit 6f660996f1623034344cc37a1d430099067b755b to
reintroduce commit 1b2503fcf7b5932c5a3779ca2ceb92bd403c4ee7.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
chardev/char-mux.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index 1b925c8dec..6055e76293 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -304,6 +304,7 @@ void mux_set_focus(Chardev *chr, int focus)
}
d->focus = focus;
+ chr->be = d->backends[focus];
mux_chr_send_event(d, d->focus, CHR_EVENT_MUX_IN);
}
--
2.17.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] Revert "Revert "mux: fix ctrl-a b again"" again
2018-04-19 22:09 ` [Qemu-devel] [PATCH 2/2] Revert "Revert "mux: fix ctrl-a b again"" again Philippe Mathieu-Daudé
@ 2018-04-19 22:12 ` Marc-André Lureau
0 siblings, 0 replies; 11+ messages in thread
From: Marc-André Lureau @ 2018-04-19 22:12 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Peter Maydell, Paolo Bonzini, qemu-devel,
Daniel P . Berrangé
Hi
On Fri, Apr 20, 2018 at 12:09 AM, Philippe Mathieu-Daudé
<f4bug@amsat.org> wrote:
> This reverts commit 6f660996f1623034344cc37a1d430099067b755b to
> reintroduce commit 1b2503fcf7b5932c5a3779ca2ceb92bd403c4ee7.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
I think we agreed this would go after 2.12.
I was going to send an updated patch with additional tests. I can take
your patch for the next series perhaps, instead of doing the double
revert ;)
> ---
> chardev/char-mux.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/chardev/char-mux.c b/chardev/char-mux.c
> index 1b925c8dec..6055e76293 100644
> --- a/chardev/char-mux.c
> +++ b/chardev/char-mux.c
> @@ -304,6 +304,7 @@ void mux_set_focus(Chardev *chr, int focus)
> }
>
> d->focus = focus;
> + chr->be = d->backends[focus];
> mux_chr_send_event(d, d->focus, CHR_EVENT_MUX_IN);
> }
>
> --
> 2.17.0
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be
2018-04-19 22:09 ` [Qemu-devel] [PATCH 1/2] hw/isa/superio: " Philippe Mathieu-Daudé
@ 2018-04-20 8:43 ` Peter Maydell
2018-04-20 12:39 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 11+ messages in thread
From: Peter Maydell @ 2018-04-20 8:43 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Marc-André Lureau, Paolo Bonzini, QEMU Developers,
Daniel P . Berrangé, Michael S. Tsirkin
On 19 April 2018 at 23:09, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
> 4c3119a6e3e and cd9526ab7c0 introduced an incorrect and inconsistent
> use of Chardev->be. Also, this CharBackend member is private and is
> not supposed to be accessible.
>
> Fix it by removing the inconsistent check.
>
> Reported-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> hw/isa/isa-superio.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
> index b95608a003..08afe44731 100644
> --- a/hw/isa/isa-superio.c
> +++ b/hw/isa/isa-superio.c
> @@ -43,7 +43,7 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
> if (!k->parallel.is_enabled || k->parallel.is_enabled(sio, i)) {
> /* FIXME use a qdev chardev prop instead of parallel_hds[] */
> chr = parallel_hds[i];
> - if (chr == NULL || chr->be) {
> + if (chr == NULL) {
> name = g_strdup_printf("discarding-parallel%d", i);
> chr = qemu_chr_new(name, "null");
> } else {
> @@ -83,7 +83,7 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
> if (!k->serial.is_enabled || k->serial.is_enabled(sio, i)) {
> /* FIXME use a qdev chardev prop instead of serial_hds[] */
> chr = serial_hds[i];
> - if (chr == NULL || chr->be) {
> + if (chr == NULL) {
> name = g_strdup_printf("discarding-serial%d", i);
> chr = qemu_chr_new(name, "null");
> } else {
You should not need to create fake null devices like this. The
device using the chardev should just cope with having a NULL
pointer now we have commit 12051d82f004024.
Also consider having cc:stable on this patchset?
thanks
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be
2018-04-20 8:43 ` Peter Maydell
@ 2018-04-20 12:39 ` Philippe Mathieu-Daudé
2018-04-20 12:59 ` Peter Maydell
0 siblings, 1 reply; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-04-20 12:39 UTC (permalink / raw)
To: Peter Maydell, Paolo Bonzini
Cc: Marc-André Lureau, QEMU Developers, Daniel P . Berrangé,
Michael S. Tsirkin
Hi Peter,
On 04/20/2018 05:43 AM, Peter Maydell wrote:
> On 19 April 2018 at 23:09, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>> 4c3119a6e3e and cd9526ab7c0 introduced an incorrect and inconsistent
>> use of Chardev->be. Also, this CharBackend member is private and is
>> not supposed to be accessible.
>>
>> Fix it by removing the inconsistent check.
>>
>> Reported-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> hw/isa/isa-superio.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c
>> index b95608a003..08afe44731 100644
>> --- a/hw/isa/isa-superio.c
>> +++ b/hw/isa/isa-superio.c
>> @@ -43,7 +43,7 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
>> if (!k->parallel.is_enabled || k->parallel.is_enabled(sio, i)) {
>> /* FIXME use a qdev chardev prop instead of parallel_hds[] */
>> chr = parallel_hds[i];
>> - if (chr == NULL || chr->be) {
>> + if (chr == NULL) {
>> name = g_strdup_printf("discarding-parallel%d", i);
>> chr = qemu_chr_new(name, "null");
>> } else {
>> @@ -83,7 +83,7 @@ static void isa_superio_realize(DeviceState *dev, Error **errp)
>> if (!k->serial.is_enabled || k->serial.is_enabled(sio, i)) {
>> /* FIXME use a qdev chardev prop instead of serial_hds[] */
>> chr = serial_hds[i];
>> - if (chr == NULL || chr->be) {
>> + if (chr == NULL) {
>> name = g_strdup_printf("discarding-serial%d", i);
>> chr = qemu_chr_new(name, "null");
>> } else {
>
> You should not need to create fake null devices like this. The
> device using the chardev should just cope with having a NULL
> pointer now we have commit 12051d82f004024.
I am trying to model a SoC with 4 uarts, and started using the current
pattern:
for (i = 0; i < MAX_SERIAL_PORTS; i+++) {
if (serial_hds[i]) {
serial_mm_init(..., serial_hds[i], ...);
Then the test firmware failed due to unassigned access after rebasing,
due to:
commit ed860129acd3fcd0b1e47884e810212aaca4d21b
Author: Peter Maydell <peter.maydell@linaro.org>
Date: Thu Sep 7 13:54:54 2017 +0100
boards.h: Define new flag ignore_memory_transaction_failures
Define a new MachineClass field ignore_memory_transaction_failures.
If this is flag is true then the CPU will ignore memory transaction
failures which should cause the CPU to take an exception due to an
access to an unassigned physical address; the transaction will
instead return zero (for a read) or be ignored (for a write). This
should be set only by legacy board models which rely on the old
RAZ/WI behaviour for handling devices that QEMU does not yet model.
New board models should instead use "unimplemented-device" for all
memory ranges where the guest will attempt to probe for a device that
QEMU doesn't implement and a stub device is required.
We need this for ARM boards, where we're about to implement support for
generating external aborts on memory transaction failures. Too many
of our legacy board models rely on the RAZ/WI behaviour and we
would break currently working guests when their "probe for device"
code provoked an external abort rather than a RAZ.
Which is fine, I understand new boards shouldn't use the
ignore_memory_transaction_failures flag.
The chardev subsystem is still confuse to me.
I think than checking if a chardev backend is connected to instantiate
and mmap a device and his irqs is incorrect, since boards/SoCs always
come with the same hardware.
Indeed previous to 12051d82f004024, qemu_chr_fe_init(s=NULL) was doing
if (CHARDEV_IS_MUX(s)) {
...
} else {
s->be = b; /* NULL deref... */
}
Which seems the original reason of my bogus "if (chr == NULL || chr->be)
..." check.
Since we can now safely call serial_mm_init(..., chr=NULL, ...), I'll
work on simplifying and fixing this.
> Also consider having cc:stable on this patchset?
Once we get a consensus on the series, OK.
Thanks,
Phil.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be
2018-04-20 12:39 ` Philippe Mathieu-Daudé
@ 2018-04-20 12:59 ` Peter Maydell
2018-04-20 13:04 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 11+ messages in thread
From: Peter Maydell @ 2018-04-20 12:59 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Paolo Bonzini, Marc-André Lureau, QEMU Developers,
Daniel P . Berrangé, Michael S. Tsirkin
On 20 April 2018 at 13:39, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
> Hi Peter,
>
> On 04/20/2018 05:43 AM, Peter Maydell wrote:
>> On 19 April 2018 at 23:09, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>>> 4c3119a6e3e and cd9526ab7c0 introduced an incorrect and inconsistent
>>> use of Chardev->be. Also, this CharBackend member is private and is
>>> not supposed to be accessible.
>> You should not need to create fake null devices like this. The
>> device using the chardev should just cope with having a NULL
>> pointer now we have commit 12051d82f004024.
>
> I am trying to model a SoC with 4 uarts, and started using the current
> pattern:
>
> for (i = 0; i < MAX_SERIAL_PORTS; i+++) {
> if (serial_hds[i]) {
> serial_mm_init(..., serial_hds[i], ...);
This is wrong, because it means that the UART device will
only be visible to the guest if the user connected it to
something (with -serial whatever). You should always create
the same number of devices, which correspond to what
hard wired UARTs the board has.
(The exception would I guess be if the devices were pluggable,
so each serial device was a pluggable PCI UART or something
weird; in that case there's an argument that -serial means
"create and plug in one of these devices". x86 is probably
also different for legacy reasons.)
> Since we can now safely call serial_mm_init(..., chr=NULL, ...), I'll
> work on simplifying and fixing this.
Correct. There are a bunch of dubious workarounds in the
codebase which try to handle the problem at different levels,
but we've decided that the right thing is for the NULL pointer
to be dealt with in one place at the bottom (in the qemu_chr_fe_*
functions).
Incidentally I was wondering if we could sensibly get rid of
the compile time MAX_SERIAL_PORTS. Right now there's no way
to model a device with five UARTs such that they can all
be sent to interesting places. I think there's no reason
for this except that the PC traditionally has 4 UARTs and
nobody's ever changed the code...
thanks
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be
2018-04-20 12:59 ` Peter Maydell
@ 2018-04-20 13:04 ` Philippe Mathieu-Daudé
2018-04-20 14:00 ` Peter Maydell
2018-04-20 14:29 ` Philippe Mathieu-Daudé
0 siblings, 2 replies; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-04-20 13:04 UTC (permalink / raw)
To: Peter Maydell
Cc: Paolo Bonzini, Marc-André Lureau, QEMU Developers,
Daniel P . Berrangé, Michael S. Tsirkin
On 04/20/2018 09:59 AM, Peter Maydell wrote:
> On 20 April 2018 at 13:39, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>> On 04/20/2018 05:43 AM, Peter Maydell wrote:
>>> On 19 April 2018 at 23:09, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>>>> 4c3119a6e3e and cd9526ab7c0 introduced an incorrect and inconsistent
>>>> use of Chardev->be. Also, this CharBackend member is private and is
>>>> not supposed to be accessible.
>
>>> You should not need to create fake null devices like this. The
>>> device using the chardev should just cope with having a NULL
>>> pointer now we have commit 12051d82f004024.
>>
>> I am trying to model a SoC with 4 uarts, and started using the current
>> pattern:
>>
>> for (i = 0; i < MAX_SERIAL_PORTS; i+++) {
>> if (serial_hds[i]) {
>> serial_mm_init(..., serial_hds[i], ...);
>
> This is wrong, because it means that the UART device will
> only be visible to the guest if the user connected it to
> something (with -serial whatever). You should always create
> the same number of devices, which correspond to what
> hard wired UARTs the board has.
Agreed!
> (The exception would I guess be if the devices were pluggable,
> so each serial device was a pluggable PCI UART or something
> weird; in that case there's an argument that -serial means
> "create and plug in one of these devices". x86 is probably
> also different for legacy reasons.)
Good example, also USB uarts.
>> Since we can now safely call serial_mm_init(..., chr=NULL, ...), I'll
>> work on simplifying and fixing this.
>
> Correct. There are a bunch of dubious workarounds in the
> codebase which try to handle the problem at different levels,
> but we've decided that the right thing is for the NULL pointer
> to be dealt with in one place at the bottom (in the qemu_chr_fe_*
> functions).
OK, I'll happily clean that :)
> Incidentally I was wondering if we could sensibly get rid of
> the compile time MAX_SERIAL_PORTS. Right now there's no way
> to model a device with five UARTs such that they can all
> be sent to interesting places. I think there's no reason
> for this except that the PC traditionally has 4 UARTs and
> nobody's ever changed the code...
Yes, I thought the same and planned to relax this limit (and few others)
in my "remove i386/pc dependency from non-PC world" series...
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be
2018-04-20 13:04 ` Philippe Mathieu-Daudé
@ 2018-04-20 14:00 ` Peter Maydell
2018-04-20 14:29 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2018-04-20 14:00 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Paolo Bonzini, Marc-André Lureau, QEMU Developers,
Daniel P . Berrangé, Michael S. Tsirkin
On 20 April 2018 at 14:04, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
> On 04/20/2018 09:59 AM, Peter Maydell wrote:
>> Incidentally I was wondering if we could sensibly get rid of
>> the compile time MAX_SERIAL_PORTS. Right now there's no way
>> to model a device with five UARTs such that they can all
>> be sent to interesting places. I think there's no reason
>> for this except that the PC traditionally has 4 UARTs and
>> nobody's ever changed the code...
>
> Yes, I thought the same and planned to relax this limit (and few others)
> in my "remove i386/pc dependency from non-PC world" series...
It seems fairly straightforward so I've put some patches
together, might be able to get them onto the list this
afternoon.
thanks
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be
2018-04-20 13:04 ` Philippe Mathieu-Daudé
2018-04-20 14:00 ` Peter Maydell
@ 2018-04-20 14:29 ` Philippe Mathieu-Daudé
2018-04-20 14:43 ` Peter Maydell
1 sibling, 1 reply; 11+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-04-20 14:29 UTC (permalink / raw)
To: Peter Maydell
Cc: Paolo Bonzini, Marc-André Lureau, QEMU Developers,
Daniel P . Berrangé, Michael S. Tsirkin
>>> On 04/20/2018 05:43 AM, Peter Maydell wrote:
>>> Since we can now safely call serial_mm_init(..., chr=NULL, ...), I'll
>>> work on simplifying and fixing this.
>>
>> Correct. There are a bunch of dubious workarounds in the
>> codebase which try to handle the problem at different levels,
>> but we've decided that the right thing is for the NULL pointer
>> to be dealt with in one place at the bottom (in the qemu_chr_fe_*
>> functions).
>
> OK, I'll happily clean that :)
Hmmm removing the "if (serial_hds[0])" check I reach:
void serial_realize_core(SerialState *s, Error **errp)
{
if (!qemu_chr_fe_backend_connected(&s->chr)) {
error_setg(errp, "Can't create serial device, empty char device");
return;
}
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be
2018-04-20 14:29 ` Philippe Mathieu-Daudé
@ 2018-04-20 14:43 ` Peter Maydell
0 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2018-04-20 14:43 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Paolo Bonzini, Marc-André Lureau, QEMU Developers,
Daniel P . Berrangé, Michael S. Tsirkin
On 20 April 2018 at 15:29, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>>>> On 04/20/2018 05:43 AM, Peter Maydell wrote:
>>>> Since we can now safely call serial_mm_init(..., chr=NULL, ...), I'll
>>>> work on simplifying and fixing this.
>>>
>>> Correct. There are a bunch of dubious workarounds in the
>>> codebase which try to handle the problem at different levels,
>>> but we've decided that the right thing is for the NULL pointer
>>> to be dealt with in one place at the bottom (in the qemu_chr_fe_*
>>> functions).
>>
>> OK, I'll happily clean that :)
>
> Hmmm removing the "if (serial_hds[0])" check I reach:
>
> void serial_realize_core(SerialState *s, Error **errp)
> {
> if (!qemu_chr_fe_backend_connected(&s->chr)) {
> error_setg(errp, "Can't create serial device, empty char device");
> return;
> }
Yeah. That check is unnecessary; nothing fails to work if it is
removed. I've got a patch deleting it in my "drop MAX_SERIAL_PORTS"
series.
thanks
-- PMM
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2018-04-20 14:43 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-19 22:09 [Qemu-devel] [PATCH 0/2] hw/superio: Fix inconsistent use of Chardev->be Philippe Mathieu-Daudé
2018-04-19 22:09 ` [Qemu-devel] [PATCH 1/2] hw/isa/superio: " Philippe Mathieu-Daudé
2018-04-20 8:43 ` Peter Maydell
2018-04-20 12:39 ` Philippe Mathieu-Daudé
2018-04-20 12:59 ` Peter Maydell
2018-04-20 13:04 ` Philippe Mathieu-Daudé
2018-04-20 14:00 ` Peter Maydell
2018-04-20 14:29 ` Philippe Mathieu-Daudé
2018-04-20 14:43 ` Peter Maydell
2018-04-19 22:09 ` [Qemu-devel] [PATCH 2/2] Revert "Revert "mux: fix ctrl-a b again"" again Philippe Mathieu-Daudé
2018-04-19 22:12 ` Marc-André Lureau
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).