Skip to content

Commit

Permalink
gre: Call skb_checksum_simple_validate
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Tom Herbert authored and David S. Miller committed May 9, 2014
1 parent 1a91de2 commit b1036c6
Showing 1 changed file with 1 addition and 23 deletions.
24 changes: 1 addition & 23 deletions net/ipv4/gre_demux.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand All @@ -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;
}
Expand Down

0 comments on commit b1036c6

Please sign in to comment.