* [Qemu-devel] [PATCH v2 0/2] mux: fix ctrl-a b again
@ 2018-05-15 15:24 Philippe Mathieu-Daudé
2018-05-15 15:24 ` [Qemu-devel] [PATCH v2 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be Philippe Mathieu-Daudé
2018-05-15 15:25 ` [Qemu-devel] [PATCH v2 2/2] mux: fix ctrl-a b again Philippe Mathieu-Daudé
0 siblings, 2 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-05-15 15:24 UTC (permalink / raw)
To: Peter Maydell, Marc-André Lureau, Paolo Bonzini,
Michael S. Tsirkin
Cc: Philippe Mathieu-Daudé, qemu-devel, qemu-stable
Hi, this series contains the rebased patches for the ctrl-a+b fix.
Please consider to include in qemu-stable.
Regards,
Phil.
v2:
- rebase on Peter serial cleanup:
"Drop compile time limit on number of serial ports"
http://lists.nongnu.org/archive/html/qemu-devel/2018-04/msg03376.html
- added ctrl-ab test (Marc-André)
v1 was http://lists.nongnu.org/archive/html/qemu-devel/2018-04/msg03168.html
Marc-André Lureau (1):
mux: fix ctrl-a b again
Philippe Mathieu-Daudé (1):
superio: Fix inconsistent use of Chardev->be
chardev/char-mux.c | 1 +
hw/isa/isa-superio.c | 4 ++--
tests/test-char.c | 8 ++++++++
3 files changed, 11 insertions(+), 2 deletions(-)
--
2.17.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH v2 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be
2018-05-15 15:24 [Qemu-devel] [PATCH v2 0/2] mux: fix ctrl-a b again Philippe Mathieu-Daudé
@ 2018-05-15 15:24 ` Philippe Mathieu-Daudé
2018-05-15 15:28 ` Marc-André Lureau
2018-05-15 15:30 ` Paolo Bonzini
2018-05-15 15:25 ` [Qemu-devel] [PATCH v2 2/2] mux: fix ctrl-a b again Philippe Mathieu-Daudé
1 sibling, 2 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-05-15 15:24 UTC (permalink / raw)
To: Peter Maydell, Marc-André Lureau, Paolo Bonzini,
Michael S. Tsirkin
Cc: Philippe Mathieu-Daudé, qemu-devel, qemu-stable
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.
Cc: qemu-stable@nongnu.org
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 76286c81a1..bb88251f95 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_hd() */
chr = serial_hd(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] 5+ messages in thread
* [Qemu-devel] [PATCH v2 2/2] mux: fix ctrl-a b again
2018-05-15 15:24 [Qemu-devel] [PATCH v2 0/2] mux: fix ctrl-a b again Philippe Mathieu-Daudé
2018-05-15 15:24 ` [Qemu-devel] [PATCH v2 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be Philippe Mathieu-Daudé
@ 2018-05-15 15:25 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-05-15 15:25 UTC (permalink / raw)
To: Peter Maydell, Marc-André Lureau, Paolo Bonzini,
Michael S. Tsirkin
Cc: qemu-devel, qemu-stable
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Commit fb5e19d2e1472e96d72d5e4d89c20033f8ab345c originally fixed the
regression, but was inadvertently broken again in merge commit
2d6752d38d8acda.
Fixes:
https://bugs.launchpad.net/qemu/+bug/1654137
Cc: qemu-stable@nongnu.org
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
chardev/char-mux.c | 1 +
tests/test-char.c | 8 ++++++++
2 files changed, 9 insertions(+)
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);
}
diff --git a/tests/test-char.c b/tests/test-char.c
index 1880d36783..5905d31441 100644
--- a/tests/test-char.c
+++ b/tests/test-char.c
@@ -214,6 +214,10 @@ static void char_mux_test(void)
g_assert_cmpint(h2.last_event, ==, -1);
/* switch focus */
+ qemu_chr_be_write(base, (void *)"\1b", 2);
+ g_assert_cmpint(h1.last_event, ==, 42);
+ g_assert_cmpint(h2.last_event, ==, CHR_EVENT_BREAK);
+
qemu_chr_be_write(base, (void *)"\1c", 2);
g_assert_cmpint(h1.last_event, ==, CHR_EVENT_MUX_IN);
g_assert_cmpint(h2.last_event, ==, CHR_EVENT_MUX_OUT);
@@ -227,6 +231,10 @@ static void char_mux_test(void)
g_assert_cmpstr(h1.read_buf, ==, "hello");
h1.read_count = 0;
+ qemu_chr_be_write(base, (void *)"\1b", 2);
+ g_assert_cmpint(h1.last_event, ==, CHR_EVENT_BREAK);
+ g_assert_cmpint(h2.last_event, ==, CHR_EVENT_MUX_OUT);
+
/* remove first handler */
qemu_chr_fe_set_handlers(&chr_be1, NULL, NULL, NULL, NULL,
NULL, NULL, true);
--
2.17.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be
2018-05-15 15:24 ` [Qemu-devel] [PATCH v2 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be Philippe Mathieu-Daudé
@ 2018-05-15 15:28 ` Marc-André Lureau
2018-05-15 15:30 ` Paolo Bonzini
1 sibling, 0 replies; 5+ messages in thread
From: Marc-André Lureau @ 2018-05-15 15:28 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Peter Maydell, Paolo Bonzini, Michael S. Tsirkin, qemu-devel,
qemu-stable
On Tue, May 15, 2018 at 5:24 PM, 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.
>
> Cc: qemu-stable@nongnu.org
> Reported-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
> 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 76286c81a1..bb88251f95 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_hd() */
> chr = serial_hd(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 [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be
2018-05-15 15:24 ` [Qemu-devel] [PATCH v2 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be Philippe Mathieu-Daudé
2018-05-15 15:28 ` Marc-André Lureau
@ 2018-05-15 15:30 ` Paolo Bonzini
1 sibling, 0 replies; 5+ messages in thread
From: Paolo Bonzini @ 2018-05-15 15:30 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, Peter Maydell,
Marc-André Lureau, Michael S. Tsirkin
Cc: qemu-devel, qemu-stable
On 15/05/2018 17:24, Philippe Mathieu-Daudé 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.
>
> Cc: qemu-stable@nongnu.org
> 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 76286c81a1..bb88251f95 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_hd() */
> chr = serial_hd(i);
> - if (chr == NULL || chr->be) {
> + if (chr == NULL) {
> name = g_strdup_printf("discarding-serial%d", i);
> chr = qemu_chr_new(name, "null");
> } else {
>
Queued, thanks.
Paolo
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-05-15 15:30 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-15 15:24 [Qemu-devel] [PATCH v2 0/2] mux: fix ctrl-a b again Philippe Mathieu-Daudé
2018-05-15 15:24 ` [Qemu-devel] [PATCH v2 1/2] hw/isa/superio: Fix inconsistent use of Chardev->be Philippe Mathieu-Daudé
2018-05-15 15:28 ` Marc-André Lureau
2018-05-15 15:30 ` Paolo Bonzini
2018-05-15 15:25 ` [Qemu-devel] [PATCH v2 2/2] mux: fix ctrl-a b again Philippe Mathieu-Daudé
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).