mirror of https://gitee.com/openkylin/linux.git
gre: Call skb_checksum_simple_validate
Use skb_checksum_simple_validate to verify checksum. Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1a91de2883
commit
b1036c6a47
|
@ -93,28 +93,6 @@ void gre_build_header(struct sk_buff *skb, const struct tnl_ptk_info *tpi,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(gre_build_header);
|
||||
|
||||
static __sum16 check_checksum(struct sk_buff *skb)
|
||||
{
|
||||
__sum16 csum = 0;
|
||||
|
||||
switch (skb->ip_summed) {
|
||||
case CHECKSUM_COMPLETE:
|
||||
csum = csum_fold(skb->csum);
|
||||
|
||||
if (!csum)
|
||||
break;
|
||||
/* Fall through. */
|
||||
|
||||
case CHECKSUM_NONE:
|
||||
skb->csum = 0;
|
||||
csum = __skb_checksum_complete(skb);
|
||||
skb->ip_summed = CHECKSUM_COMPLETE;
|
||||
break;
|
||||
}
|
||||
|
||||
return csum;
|
||||
}
|
||||
|
||||
static int parse_gre_header(struct sk_buff *skb, struct tnl_ptk_info *tpi,
|
||||
bool *csum_err)
|
||||
{
|
||||
|
@ -141,7 +119,7 @@ static int parse_gre_header(struct sk_buff *skb, struct tnl_ptk_info *tpi,
|
|||
|
||||
options = (__be32 *)(greh + 1);
|
||||
if (greh->flags & GRE_CSUM) {
|
||||
if (check_checksum(skb)) {
|
||||
if (skb_checksum_simple_validate(skb)) {
|
||||
*csum_err = true;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue