[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: Aubrey.Li <aubreylee@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
55569ce256
commit
5e7d7fa573
1 changed files with 7 additions and 0 deletions
|
@ -471,6 +471,13 @@ int __netpoll_rx(struct sk_buff *skb)
|
|||
if (skb->len < len || len < iph->ihl*4)
|
||||
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)
|
||||
goto out;
|
||||
|
||||
|
|
Loading…
Reference in a new issue