]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv4/tcp_output.c
netpoll deferred transmit path
[linux-2.6-omap-h63xx.git] / net / ipv4 / tcp_output.c
index ca406157724c5399eb6c5a0ae443cbb65f9aa3f2..6a8581ab9a23787d784240ca1da65c4d4cbe0b04 100644 (file)
@@ -426,7 +426,6 @@ static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it,
 
        th = (struct tcphdr *) skb_push(skb, tcp_header_size);
        skb->h.th = th;
-       skb_set_owner_w(skb, sk);
 
        /* Build TCP header and checksum it. */
        th->source              = inet->sport;
@@ -479,19 +478,13 @@ static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it,
        if (after(tcb->end_seq, tp->snd_nxt) || tcb->seq == tcb->end_seq)
                TCP_INC_STATS(TCP_MIB_OUTSEGS);
 
-       err = icsk->icsk_af_ops->queue_xmit(skb, 0);
+       err = icsk->icsk_af_ops->queue_xmit(skb, sk, 0);
        if (likely(err <= 0))
                return err;
 
        tcp_enter_cwr(sk);
 
-       /* NET_XMIT_CN is special. It does not guarantee,
-        * that this packet is lost. It tells that device
-        * is about to start to drop packets or already
-        * drops some packets of the same priority and
-        * invokes us to send less aggressively.
-        */
-       return err == NET_XMIT_CN ? 0 : err;
+       return net_xmit_eval(err);
 
 #undef SYSCTL_FLAG_TSTAMPS
 #undef SYSCTL_FLAG_WSCALE