提交 8e365eec 编写于 作者: C Chris Lalancette 提交者: David S. Miller

[NETPOLL]: Compute checksum properly in netpoll_send_udp().

Signed-off-by: NChris Lalancette <clalance@redhat.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 da33e3eb
......@@ -340,6 +340,12 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
udph->dest = htons(np->remote_port);
udph->len = htons(udp_len);
udph->check = 0;
udph->check = csum_tcpudp_magic(htonl(np->local_ip),
htonl(np->remote_ip),
udp_len, IPPROTO_UDP,
csum_partial((unsigned char *)udph, udp_len, 0));
if (udph->check == 0)
udph->check = -1;
skb->nh.iph = iph = (struct iphdr *)skb_push(skb, sizeof(*iph));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册