Commit 4262e5ccbbb5171abd2921eed16ed339633d6478

Authored by Daniel Borkmann
Committed by David S. Miller
1 parent 34f9f43710

net: dev: move inline skb_needs_linearize helper to header

As we need it elsewhere, move the inline helper function of
skb_needs_linearize() over to skbuff.h include file. While
at it, also convert the return to 'bool' instead of 'int'
and add a proper kernel doc.

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 2 changed files with 18 additions and 15 deletions Side-by-side Diff

include/linux/skbuff.h
... ... @@ -2392,6 +2392,24 @@
2392 2392 return buffer;
2393 2393 }
2394 2394  
  2395 +/**
  2396 + * skb_needs_linearize - check if we need to linearize a given skb
  2397 + * depending on the given device features.
  2398 + * @skb: socket buffer to check
  2399 + * @features: net device features
  2400 + *
  2401 + * Returns true if either:
  2402 + * 1. skb has frag_list and the device doesn't support FRAGLIST, or
  2403 + * 2. skb is fragmented and the device does not support SG.
  2404 + */
  2405 +static inline bool skb_needs_linearize(struct sk_buff *skb,
  2406 + netdev_features_t features)
  2407 +{
  2408 + return skb_is_nonlinear(skb) &&
  2409 + ((skb_has_frag_list(skb) && !(features & NETIF_F_FRAGLIST)) ||
  2410 + (skb_shinfo(skb)->nr_frags && !(features & NETIF_F_SG)));
  2411 +}
  2412 +
2395 2413 static inline void skb_copy_from_linear_data(const struct sk_buff *skb,
2396 2414 void *to,
2397 2415 const unsigned int len)
... ... @@ -2535,21 +2535,6 @@
2535 2535 }
2536 2536 EXPORT_SYMBOL(netif_skb_features);
2537 2537  
2538   -/*
2539   - * Returns true if either:
2540   - * 1. skb has frag_list and the device doesn't support FRAGLIST, or
2541   - * 2. skb is fragmented and the device does not support SG.
2542   - */
2543   -static inline int skb_needs_linearize(struct sk_buff *skb,
2544   - netdev_features_t features)
2545   -{
2546   - return skb_is_nonlinear(skb) &&
2547   - ((skb_has_frag_list(skb) &&
2548   - !(features & NETIF_F_FRAGLIST)) ||
2549   - (skb_shinfo(skb)->nr_frags &&
2550   - !(features & NETIF_F_SG)));
2551   -}
2552   -
2553 2538 int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev,
2554 2539 struct netdev_queue *txq, void *accel_priv)
2555 2540 {