|
@@ -2129,7 +2129,8 @@ static inline bool skb_warn_if_lro(const struct sk_buff *skb)
|
|
/* LRO sets gso_size but not gso_type, whereas if GSO is really
|
|
/* LRO sets gso_size but not gso_type, whereas if GSO is really
|
|
* wanted then gso_type will be set. */
|
|
* wanted then gso_type will be set. */
|
|
struct skb_shared_info *shinfo = skb_shinfo(skb);
|
|
struct skb_shared_info *shinfo = skb_shinfo(skb);
|
|
- if (shinfo->gso_size != 0 && unlikely(shinfo->gso_type == 0)) {
|
|
|
|
|
|
+ if (skb_is_nonlinear(skb) && shinfo->gso_size != 0 &&
|
|
|
|
+ unlikely(shinfo->gso_type == 0)) {
|
|
__skb_warn_lro_forwarding(skb);
|
|
__skb_warn_lro_forwarding(skb);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|