um: Do not use printk in SIGWINCH helper thread
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>
This commit is contained in:
parent
236f9fe39b
commit
1818b84066
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user