Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 957f094f authored by Alex Gartrell's avatar Alex Gartrell Committed by David S. Miller
Browse files

tun: return proper error code from tun_do_read



Instead of -1 with EAGAIN, read on a O_NONBLOCK tun fd will return 0.  This
fixes this by properly returning the error code from __skb_recv_datagram.

Signed-off-by: default avatarAlex Gartrell <agartrell@fb.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 87897931
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1380,7 +1380,7 @@ static ssize_t tun_do_read(struct tun_struct *tun, struct tun_file *tfile,
	skb = __skb_recv_datagram(tfile->socket.sk, noblock ? MSG_DONTWAIT : 0,
				  &peeked, &off, &err);
	if (!skb)
		return 0;
		return err;

	ret = tun_put_user(tun, tfile, skb, to);
	if (unlikely(ret < 0))