diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2008-06-19 19:22:28 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-06-19 19:22:28 -0400 |
commit | 4497b0763cb1afae463f5e144c28b5d806e28b60 (patch) | |
tree | 3e86c53b5eb461eac7523885e43f36033cc03968 /net/core | |
parent | 0187bdfb05674147774ca79a79942537f3ad54bd (diff) |
net: Discard and warn about LRO'd skbs received for forwarding
Add skb_warn_if_lro() to test whether an skb was received with LRO and
warn if so.
Change br_forward(), ip_forward() and ip6_forward() to call it) and
discard the skb if it returns true.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/skbuff.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 3e18f8525e8..2df012be973 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -2583,6 +2583,13 @@ bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off) | |||
2583 | return true; | 2583 | return true; |
2584 | } | 2584 | } |
2585 | 2585 | ||
2586 | void __skb_warn_lro_forwarding(const struct sk_buff *skb) | ||
2587 | { | ||
2588 | if (net_ratelimit()) | ||
2589 | pr_warning("%s: received packets cannot be forwarded" | ||
2590 | " while LRO is enabled\n", skb->dev->name); | ||
2591 | } | ||
2592 | |||
2586 | EXPORT_SYMBOL(___pskb_trim); | 2593 | EXPORT_SYMBOL(___pskb_trim); |
2587 | EXPORT_SYMBOL(__kfree_skb); | 2594 | EXPORT_SYMBOL(__kfree_skb); |
2588 | EXPORT_SYMBOL(kfree_skb); | 2595 | EXPORT_SYMBOL(kfree_skb); |
@@ -2616,6 +2623,7 @@ EXPORT_SYMBOL(skb_seq_read); | |||
2616 | EXPORT_SYMBOL(skb_abort_seq_read); | 2623 | EXPORT_SYMBOL(skb_abort_seq_read); |
2617 | EXPORT_SYMBOL(skb_find_text); | 2624 | EXPORT_SYMBOL(skb_find_text); |
2618 | EXPORT_SYMBOL(skb_append_datato_frags); | 2625 | EXPORT_SYMBOL(skb_append_datato_frags); |
2626 | EXPORT_SYMBOL(__skb_warn_lro_forwarding); | ||
2619 | 2627 | ||
2620 | EXPORT_SYMBOL_GPL(skb_to_sgvec); | 2628 | EXPORT_SYMBOL_GPL(skb_to_sgvec); |
2621 | EXPORT_SYMBOL_GPL(skb_cow_data); | 2629 | EXPORT_SYMBOL_GPL(skb_cow_data); |