virtio: make add_buf return capacity remaining
[deliverable/linux.git] / net / ipv6 / raw.c
index d6c3c1c34b2d0cf1eac94211675800fce65be843..7d675b8d82d36813e2229d6abfe31ffdeec7d4be 100644 (file)
@@ -642,7 +642,7 @@ static int rawv6_send_hdrinc(struct sock *sk, void *from, int length,
        err = NF_HOOK(PF_INET6, NF_INET_LOCAL_OUT, skb, NULL, rt->u.dst.dev,
                      dst_output);
        if (err > 0)
-               err = np->recverr ? net_xmit_errno(err) : 0;
+               err = net_xmit_errno(err);
        if (err)
                goto error;
 out:
@@ -653,6 +653,8 @@ error_fault:
        kfree_skb(skb);
 error:
        IP6_INC_STATS(sock_net(sk), rt->rt6i_idev, IPSTATS_MIB_OUTDISCARDS);
+       if (err == -ENOBUFS && !np->recverr)
+               err = 0;
        return err;
 }
 
@@ -877,11 +879,8 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk,
                        hlimit = ip6_dst_hoplimit(dst);
        }
 
-       if (tclass < 0) {
+       if (tclass < 0)
                tclass = np->tclass;
-               if (tclass < 0)
-                       tclass = 0;
-       }
 
        if (msg->msg_flags&MSG_CONFIRM)
                goto do_confirm;
This page took 0.024506 seconds and 5 git commands to generate.