diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2012-07-11 16:08:35 +0100 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2012-07-11 16:08:35 +0100 |
commit | 80c1834fc86c2bbacb54a8fc3c04a8b0066b0996 (patch) | |
tree | 8200248706960af8b779e9144f5b51c670602228 /net/core/netpoll.c | |
parent | 22076c7712be29a602de45b1c573f31adbd428a9 (diff) | |
parent | bd0a521e88aa7a06ae7aabaed7ae196ed4ad867a (diff) | |
download | op-kernel-dev-80c1834fc86c2bbacb54a8fc3c04a8b0066b0996.zip op-kernel-dev-80c1834fc86c2bbacb54a8fc3c04a8b0066b0996.tar.gz |
Merge tag 'v3.5-rc6' into irqdomain/next
Linux 3.5-rc6
Diffstat (limited to 'net/core/netpoll.c')
-rw-r--r-- | net/core/netpoll.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 3d84fb9..f9f40b9 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c @@ -362,22 +362,23 @@ EXPORT_SYMBOL(netpoll_send_skb_on_dev); void netpoll_send_udp(struct netpoll *np, const char *msg, int len) { - int total_len, eth_len, ip_len, udp_len; + int total_len, ip_len, udp_len; struct sk_buff *skb; struct udphdr *udph; struct iphdr *iph; struct ethhdr *eth; udp_len = len + sizeof(*udph); - ip_len = eth_len = udp_len + sizeof(*iph); - total_len = eth_len + ETH_HLEN + NET_IP_ALIGN; + ip_len = udp_len + sizeof(*iph); + total_len = ip_len + LL_RESERVED_SPACE(np->dev); - skb = find_skb(np, total_len, total_len - len); + skb = find_skb(np, total_len + np->dev->needed_tailroom, + total_len - len); if (!skb) return; skb_copy_to_linear_data(skb, msg, len); - skb->len += len; + skb_put(skb, len); skb_push(skb, sizeof(*udph)); skb_reset_transport_header(skb); |