We were performing one extra skb_recv_datagram in mptp_recvmsg.
authorAdrian Bondrescu <adi.bondrescu@gmail.com>
Fri, 1 Jun 2012 02:30:31 +0000 (05:30 +0300)
committerAdrian Bondrescu <adi.bondrescu@gmail.com>
Fri, 1 Jun 2012 02:30:31 +0000 (05:30 +0300)
src/kernel/mptp.c

index eaff81e..83f7b1e 100644 (file)
@@ -402,6 +402,9 @@ static int mptp_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *
 out_free:
            skb_free_datagram(sk, skb);
 
+               if (i == msg->msg_iovlen - 1)
+                       break;
+
                skb = skb_recv_datagram(sk, flags, 1, &err);
                if (likely(err == -EAGAIN)) {
                        log_debug("No more skbs in the queue, returning...\n");