um: Do not use printk in SIGWINCH helper thread
authorBenjamin Berg <benjamin@sipsolutions.net>
Fri, 10 Nov 2023 11:03:42 +0000 (12:03 +0100)
committerRichard Weinberger <richard@nod.at>
Thu, 4 Jan 2024 22:51:00 +0000 (23:51 +0100)
The thread is running outside of the UML kernel scope and is a helper.
As such, printk cannot work and os_info must be used instead.

Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/drivers/chan_user.c

index 25727ed648b7273bf960aa4259aa1374123c493d..c2b83cb99aae0e931bdb4cad26f8be7cea396e2e 100644 (file)
@@ -153,8 +153,8 @@ static int winch_thread(void *arg)
        pipe_fd = data->pipe_fd;
        count = write(pipe_fd, &c, sizeof(c));
        if (count != sizeof(c))
-               printk(UM_KERN_ERR "winch_thread : failed to write "
-                      "synchronization byte, err = %d\n", -count);
+               os_info("winch_thread : failed to write synchronization byte, err = %d\n",
+                       -count);
 
        /*
         * We are not using SIG_IGN on purpose, so don't fix it as I thought to
@@ -166,28 +166,28 @@ static int winch_thread(void *arg)
        sigfillset(&sigs);
        /* Block all signals possible. */
        if (sigprocmask(SIG_SETMASK, &sigs, NULL) < 0) {
-               printk(UM_KERN_ERR "winch_thread : sigprocmask failed, "
-                      "errno = %d\n", errno);
+               os_info("winch_thread : sigprocmask failed, errno = %d\n",
+                       errno);
                exit(1);
        }
        /* In sigsuspend(), block anything else than SIGWINCH. */
        sigdelset(&sigs, SIGWINCH);
 
        if (setsid() < 0) {
-               printk(UM_KERN_ERR "winch_thread : setsid failed, errno = %d\n",
+               os_info("winch_thread : setsid failed, errno = %d\n",
                       errno);
                exit(1);
        }
 
        if (ioctl(pty_fd, TIOCSCTTY, 0) < 0) {
-               printk(UM_KERN_ERR "winch_thread : TIOCSCTTY failed on "
-                      "fd %d err = %d\n", pty_fd, errno);
+               os_info("winch_thread : TIOCSCTTY failed on "
+                       "fd %d err = %d\n", pty_fd, errno);
                exit(1);
        }
 
        if (tcsetpgrp(pty_fd, os_getpid()) < 0) {
-               printk(UM_KERN_ERR "winch_thread : tcsetpgrp failed on "
-                      "fd %d err = %d\n", pty_fd, errno);
+               os_info("winch_thread : tcsetpgrp failed on fd %d err = %d\n",
+                       pty_fd, errno);
                exit(1);
        }
 
@@ -199,8 +199,8 @@ static int winch_thread(void *arg)
         */
        count = read(pipe_fd, &c, sizeof(c));
        if (count != sizeof(c))
-               printk(UM_KERN_ERR "winch_thread : failed to read "
-                      "synchronization byte, err = %d\n", errno);
+               os_info("winch_thread : failed to read synchronization byte, err = %d\n",
+                       errno);
 
        while(1) {
                /*
@@ -211,8 +211,8 @@ static int winch_thread(void *arg)
 
                count = write(pipe_fd, &c, sizeof(c));
                if (count != sizeof(c))
-                       printk(UM_KERN_ERR "winch_thread : write failed, "
-                              "err = %d\n", errno);
+                       os_info("winch_thread : write failed, err = %d\n",
+                               errno);
        }
 }