Messages in this thread | | | From | "Vick, Matthew" <> | Subject | Re: [PATCH net 3/5] fm10k: Implement ndo_gso_check() | Date | Fri, 7 Nov 2014 01:07:36 +0000 |
| |
On 11/6/14, 1:15 PM, "Joe Stringer" <joestringer@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?
| |