All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] chardev: Don't unregister yank upon async path connection failure
@ 2026-06-03 14:11 Fabiano Rosas
  2026-06-03 14:16 ` Marc-André Lureau
  0 siblings, 1 reply; 3+ messages in thread
From: Fabiano Rosas @ 2026-06-03 14:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-stable, Marc-André Lureau, Paolo Bonzini

Commit 5c102ac9 ("chardev: Consolidate yank registration") has moved
yank registration in the tcp_chr_connect_client_async() path to after
the connection is successful. If qio_channel_socket_connect_sync()
fails early, there will be no yank registered to be unregistered in
the error path, leading to assert.

Remove the now-extraneous unregister.

Cc: qemu-stable@nongnu.org
Fixes: 5c102ac9 ("chardev: Consolidate yank registration")
Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3528
Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
 chardev/char-socket.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index e064b105c5..99e01a4875 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -1128,11 +1128,6 @@ static void qemu_chr_socket_connected(QIOTask *task, void *opaque)
 
     if (qio_task_propagate_error(task, &err)) {
         tcp_chr_change_state(s, TCP_CHARDEV_STATE_DISCONNECTED);
-        if (s->registered_yank) {
-            yank_unregister_function(CHARDEV_YANK_INSTANCE(chr->label),
-                                     char_socket_yank_iochannel,
-                                     QIO_CHANNEL(sioc));
-        }
         check_report_connect_error(chr, err);
         goto cleanup;
     }
-- 
2.53.0



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] chardev: Don't unregister yank upon async path connection failure
  2026-06-03 14:11 [PATCH] chardev: Don't unregister yank upon async path connection failure Fabiano Rosas
@ 2026-06-03 14:16 ` Marc-André Lureau
  2026-06-03 15:55   ` Fabiano Rosas
  0 siblings, 1 reply; 3+ messages in thread
From: Marc-André Lureau @ 2026-06-03 14:16 UTC (permalink / raw)
  To: Fabiano Rosas; +Cc: qemu-devel, qemu-stable, Paolo Bonzini

On Wed, Jun 3, 2026 at 6:11 PM Fabiano Rosas <farosas@suse.de> wrote:
>
> Commit 5c102ac9 ("chardev: Consolidate yank registration") has moved
> yank registration in the tcp_chr_connect_client_async() path to after
> the connection is successful. If qio_channel_socket_connect_sync()
> fails early, there will be no yank registered to be unregistered in
> the error path, leading to assert.
>
> Remove the now-extraneous unregister.
>
> Cc: qemu-stable@nongnu.org
> Fixes: 5c102ac9 ("chardev: Consolidate yank registration")
> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3528
> Signed-off-by: Fabiano Rosas <farosas@suse.de>
> ---
>  chardev/char-socket.c | 5 -----
>  1 file changed, 5 deletions(-)
>
> diff --git a/chardev/char-socket.c b/chardev/char-socket.c
> index e064b105c5..99e01a4875 100644
> --- a/chardev/char-socket.c
> +++ b/chardev/char-socket.c
> @@ -1128,11 +1128,6 @@ static void qemu_chr_socket_connected(QIOTask *task, void *opaque)
>
>      if (qio_task_propagate_error(task, &err)) {
>          tcp_chr_change_state(s, TCP_CHARDEV_STATE_DISCONNECTED);
> -        if (s->registered_yank) {

Is "registered_yank" stalled too? shouldn't be set to false to avoid
that path and possibly others?

> -            yank_unregister_function(CHARDEV_YANK_INSTANCE(chr->label),
> -                                     char_socket_yank_iochannel,
> -                                     QIO_CHANNEL(sioc));
> -        }
>          check_report_connect_error(chr, err);
>          goto cleanup;
>      }
> --
> 2.53.0
>



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] chardev: Don't unregister yank upon async path connection failure
  2026-06-03 14:16 ` Marc-André Lureau
@ 2026-06-03 15:55   ` Fabiano Rosas
  0 siblings, 0 replies; 3+ messages in thread
From: Fabiano Rosas @ 2026-06-03 15:55 UTC (permalink / raw)
  To: Marc-André Lureau; +Cc: qemu-devel, qemu-stable, Paolo Bonzini

Marc-André Lureau <marcandre.lureau@redhat.com> writes:

> On Wed, Jun 3, 2026 at 6:11 PM Fabiano Rosas <farosas@suse.de> wrote:
>>
>> Commit 5c102ac9 ("chardev: Consolidate yank registration") has moved
>> yank registration in the tcp_chr_connect_client_async() path to after
>> the connection is successful. If qio_channel_socket_connect_sync()
>> fails early, there will be no yank registered to be unregistered in
>> the error path, leading to assert.
>>
>> Remove the now-extraneous unregister.
>>
>> Cc: qemu-stable@nongnu.org
>> Fixes: 5c102ac9 ("chardev: Consolidate yank registration")
>> Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3528
>> Signed-off-by: Fabiano Rosas <farosas@suse.de>
>> ---
>>  chardev/char-socket.c | 5 -----
>>  1 file changed, 5 deletions(-)
>>
>> diff --git a/chardev/char-socket.c b/chardev/char-socket.c
>> index e064b105c5..99e01a4875 100644
>> --- a/chardev/char-socket.c
>> +++ b/chardev/char-socket.c
>> @@ -1128,11 +1128,6 @@ static void qemu_chr_socket_connected(QIOTask *task, void *opaque)
>>
>>      if (qio_task_propagate_error(task, &err)) {
>>          tcp_chr_change_state(s, TCP_CHARDEV_STATE_DISCONNECTED);
>> -        if (s->registered_yank) {
>
> Is "registered_yank" stalled too? shouldn't be set to false to avoid
> that path and possibly others?
>

No because registered_yank is about the YankInstance. There's no actual
tracking of the individual YankFns.

>> -            yank_unregister_function(CHARDEV_YANK_INSTANCE(chr->label),
>> -                                     char_socket_yank_iochannel,
>> -                                     QIO_CHANNEL(sioc));
>> -        }
>>          check_report_connect_error(chr, err);
>>          goto cleanup;
>>      }
>> --
>> 2.53.0
>>


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-06-03 15:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-03 14:11 [PATCH] chardev: Don't unregister yank upon async path connection failure Fabiano Rosas
2026-06-03 14:16 ` Marc-André Lureau
2026-06-03 15:55   ` Fabiano Rosas

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.