Commit 5e7d7fa5 authored by Aubrey.Li's avatar Aubrey.Li Committed by David S. Miller

[NET]: Fix UDP checksum issue in net poll mode.

In net poll mode, the current checksum function doesn't consider the
kind of packet which is padded to reach a specific minimum length. I
believe that's the problem causing my test case failed. The following
patch fixed this issue.
Signed-off-by: default avatarAubrey.Li <aubreylee@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 55569ce2
...@@ -471,6 +471,13 @@ int __netpoll_rx(struct sk_buff *skb) ...@@ -471,6 +471,13 @@ int __netpoll_rx(struct sk_buff *skb)
if (skb->len < len || len < iph->ihl*4) if (skb->len < len || len < iph->ihl*4)
goto out; goto out;
/*
* Our transport medium may have padded the buffer out.
* Now We trim to the true length of the frame.
*/
if (pskb_trim_rcsum(skb, len))
goto out;
if (iph->protocol != IPPROTO_UDP) if (iph->protocol != IPPROTO_UDP)
goto out; goto out;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment