]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
tty: hvc_console: Call hvc_kick in hvc_write unconditionally
authorFabian Vogt <fvogt@suse.de>
Fri, 15 Aug 2025 11:33:28 +0000 (13:33 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Oct 2025 11:35:38 +0000 (13:35 +0200)
commit cfd956dcb101aa3d25bac321fae923323a47c607 upstream.

After hvc_write completes, call hvc_kick also in the case the output
buffer has been drained, to ensure tty_wakeup gets called.

This fixes that functions which wait for a drained buffer got stuck
occasionally.

Cc: stable <stable@kernel.org>
Closes: https://bugzilla.opensuse.org/show_bug.cgi?id=1230062
Signed-off-by: Fabian Vogt <fvogt@suse.de>
Link: https://lore.kernel.org/r/2011735.PYKUYFuaPT@fvogt-thinkpad
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/hvc/hvc_console.c

index cdcc64ea2554f6914bdfec26385033e1fdeb833e..5543847070fc4541ec0564617c06369754475ab4 100644 (file)
@@ -543,10 +543,10 @@ static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count
        }
 
        /*
-        * Racy, but harmless, kick thread if there is still pending data.
+        * Kick thread to flush if there's still pending data
+        * or to wakeup the write queue.
         */
-       if (hp->n_outbuf)
-               hvc_kick();
+       hvc_kick();
 
        return written;
 }