uml: fix recvmsg return value checking

Stupid bug - we need to compare the return value of recvmsg to the value of
iov_len, not its size.  This caused port_helper processes not to be killed on
shutdown on x86_64 because the pids weren't being passed out properly.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Jeff Dike 2007-11-14 16:58:51 -08:00 committed by Linus Torvalds
parent df9d177aa2
commit d4d5d205b6
1 changed files with 1 additions and 2 deletions

View File

@ -496,8 +496,7 @@ int os_rcv_fd(int fd, int *helper_pid_out)
n = recvmsg(fd, &msg, 0); n = recvmsg(fd, &msg, 0);
if(n < 0) if(n < 0)
return -errno; return -errno;
else if(n != iov.iov_len)
else if(n != sizeof(iov.iov_len))
*helper_pid_out = -1; *helper_pid_out = -1;
cmsg = CMSG_FIRSTHDR(&msg); cmsg = CMSG_FIRSTHDR(&msg);