On 11/6/14, 1:15 PM, "Joe Stringer" <joestrin...@nicira.com> wrote:
>Oh, I suppose we need to check the gso_type too. More like this? > >+static bool fm10k_gso_check(struct sk_buff *skb, struct net_device *dev) >+{ >+ if ((skb_shinfo(skb)->gso_type & (SKB_GSO_UDP_TUNNEL | >SKB_GSO_GRE)) && >+ !fm10k_tx_encap_offload(skb)) >+ return false; >+ >+ return true; >+} It seems like the skb_shinfo(skb)->gso_type check should be in some more generic ndo_gso_check that drivers can default to/extend. Then, we could end up with something like static bool fm10k_gso_check(struct sk_buff *skb, struct net_device *dev) { if (skb_gso_check(skb, dev) && !fm10k_tx_encap_offload(skb)) return false; return true; } This could even be simplified and still legible as static bool fm10k_gso_check(struct sk_buff *skb, struct net_device *dev) { return !(skb_gso_check(skb, dev) && !fm10k_tx_encap_offload(skb)); } What do you think of this approach? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/