diff options
Diffstat (limited to 'net/core/skbuff.c')
-rw-r--r-- | net/core/skbuff.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 30c7d35dd862..1b62343f5837 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -3458,8 +3458,6 @@ static void sock_rmem_free(struct sk_buff *skb) | |||
3458 | */ | 3458 | */ |
3459 | int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb) | 3459 | int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb) |
3460 | { | 3460 | { |
3461 | int len = skb->len; | ||
3462 | |||
3463 | if (atomic_read(&sk->sk_rmem_alloc) + skb->truesize >= | 3461 | if (atomic_read(&sk->sk_rmem_alloc) + skb->truesize >= |
3464 | (unsigned int)sk->sk_rcvbuf) | 3462 | (unsigned int)sk->sk_rcvbuf) |
3465 | return -ENOMEM; | 3463 | return -ENOMEM; |
@@ -3474,7 +3472,7 @@ int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb) | |||
3474 | 3472 | ||
3475 | skb_queue_tail(&sk->sk_error_queue, skb); | 3473 | skb_queue_tail(&sk->sk_error_queue, skb); |
3476 | if (!sock_flag(sk, SOCK_DEAD)) | 3474 | if (!sock_flag(sk, SOCK_DEAD)) |
3477 | sk->sk_data_ready(sk, len); | 3475 | sk->sk_data_ready(sk); |
3478 | return 0; | 3476 | return 0; |
3479 | } | 3477 | } |
3480 | EXPORT_SYMBOL(sock_queue_err_skb); | 3478 | EXPORT_SYMBOL(sock_queue_err_skb); |
@@ -3937,12 +3935,14 @@ EXPORT_SYMBOL_GPL(skb_scrub_packet); | |||
3937 | unsigned int skb_gso_transport_seglen(const struct sk_buff *skb) | 3935 | unsigned int skb_gso_transport_seglen(const struct sk_buff *skb) |
3938 | { | 3936 | { |
3939 | const struct skb_shared_info *shinfo = skb_shinfo(skb); | 3937 | const struct skb_shared_info *shinfo = skb_shinfo(skb); |
3940 | unsigned int hdr_len; | ||
3941 | 3938 | ||
3942 | if (likely(shinfo->gso_type & (SKB_GSO_TCPV4 | SKB_GSO_TCPV6))) | 3939 | if (likely(shinfo->gso_type & (SKB_GSO_TCPV4 | SKB_GSO_TCPV6))) |
3943 | hdr_len = tcp_hdrlen(skb); | 3940 | return tcp_hdrlen(skb) + shinfo->gso_size; |
3944 | else | 3941 | |
3945 | hdr_len = sizeof(struct udphdr); | 3942 | /* UFO sets gso_size to the size of the fragmentation |
3946 | return hdr_len + shinfo->gso_size; | 3943 | * payload, i.e. the size of the L4 (UDP) header is already |
3944 | * accounted for. | ||
3945 | */ | ||
3946 | return shinfo->gso_size; | ||
3947 | } | 3947 | } |
3948 | EXPORT_SYMBOL_GPL(skb_gso_transport_seglen); | 3948 | EXPORT_SYMBOL_GPL(skb_gso_transport_seglen); |