udp: fix behavior of wrong checksums
[pandora-kernel.git] / net / ipv4 / udp.c
index 8c2e259..5e92043 100644 (file)
@@ -1248,10 +1248,8 @@ csum_copy_err:
                UDP_INC_STATS_USER(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
        unlock_sock_fast(sk, slow);
 
-       if (noblock)
-               return -EAGAIN;
-
-       /* starting over for a new packet */
+       /* starting over for a new packet, but check if we need to yield */
+       cond_resched();
        msg->msg_flags &= ~MSG_TRUNC;
        goto try_again;
 }