Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 286212
b: refs/heads/master
c: 36c9247
h: refs/heads/master
v: v3
  • Loading branch information
Ben Hutchings authored and David S. Miller committed Jan 17, 2012
1 parent 6e24a4c commit ac1fb12
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4144cb2ade46d97b9c41682fd2e9064a59f23a98
refs/heads/master: 36c92474498ad6cc3afb24b91a67a444d79978fe
31 changes: 19 additions & 12 deletions trunk/net/core/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -1887,6 +1887,22 @@ void skb_set_dev(struct sk_buff *skb, struct net_device *dev)
EXPORT_SYMBOL(skb_set_dev);
#endif /* CONFIG_NET_NS */

static void skb_warn_bad_offload(const struct sk_buff *skb)
{
struct net_device *dev = skb->dev;
const char *driver = "";

if (dev && dev->dev.parent)
driver = dev_driver_string(dev->dev.parent);

WARN(1, "%s: caps=(%pNF, %pNF) len=%d data_len=%d gso_size=%d "
"gso_type=%d ip_summed=%d\n",
driver, dev ? &dev->features : NULL,
skb->sk ? &skb->sk->sk_route_caps : NULL,
skb->len, skb->data_len, skb_shinfo(skb)->gso_size,
skb_shinfo(skb)->gso_type, skb->ip_summed);
}

/*
* Invalidate hardware checksum when packet is to be mangled, and
* complete checksum manually on outgoing path.
Expand All @@ -1900,8 +1916,8 @@ int skb_checksum_help(struct sk_buff *skb)
goto out_set_summed;

if (unlikely(skb_shinfo(skb)->gso_size)) {
/* Let GSO fix up the checksum. */
goto out_set_summed;
skb_warn_bad_offload(skb);
return -EINVAL;
}

offset = skb_checksum_start_offset(skb);
Expand Down Expand Up @@ -1961,16 +1977,7 @@ struct sk_buff *skb_gso_segment(struct sk_buff *skb,
__skb_pull(skb, skb->mac_len);

if (unlikely(skb->ip_summed != CHECKSUM_PARTIAL)) {
struct net_device *dev = skb->dev;
const char *driver = "";

if (dev && dev->dev.parent)
driver = dev_driver_string(dev->dev.parent);

WARN(1, "%s: caps=(%pNF, %pNF) len=%d data_len=%d ip_summed=%d\n",
driver, dev ? &dev->features : NULL,
skb->sk ? &skb->sk->sk_route_caps : NULL,
skb->len, skb->data_len, skb->ip_summed);
skb_warn_bad_offload(skb);

if (skb_header_cloned(skb) &&
(err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC)))
Expand Down

0 comments on commit ac1fb12

Please sign in to comment.