net: Revoke export for __skb_tx_hash, update it to just be static skb_tx_hash
authorAlexander Duyck <alexander.h.duyck@intel.com>
Fri, 27 Apr 2018 18:06:53 +0000 (14:06 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 30 Apr 2018 02:01:33 +0000 (22:01 -0400)
I am dropping the export of __skb_tx_hash as after my patches nobody is
using it outside of the net/core/dev.c file. In addition I am renaming and
repurposing it to just be a static declaration of skb_tx_hash since that
was the only user for it at this point. By doing this the compiler can
inline it into __netdev_pick_tx as that will improve performance.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h
net/core/dev.c

index 366c32891158dd1f27135b369835d3fcb165c22b..82f5a9aba5780be69a5d7483d7f49b84e32dccd7 100644 (file)
@@ -3213,19 +3213,6 @@ static inline int netif_set_xps_queue(struct net_device *dev,
 }
 #endif
 
-u16 __skb_tx_hash(const struct net_device *dev, struct sk_buff *skb,
-                 unsigned int num_tx_queues);
-
-/*
- * Returns a Tx hash for the given packet when dev->real_num_tx_queues is used
- * as a distribution range limit for the returned value.
- */
-static inline u16 skb_tx_hash(const struct net_device *dev,
-                             struct sk_buff *skb)
-{
-       return __skb_tx_hash(dev, skb, dev->real_num_tx_queues);
-}
-
 /**
  *     netif_is_multiqueue - test if device has multiple transmit queues
  *     @dev: network device
index 0a2d464240690795e6b347157a31400dfb5654e5..25ceecfdd8fe11afacb9c735471c6aa45ad47e0d 100644 (file)
@@ -2615,17 +2615,16 @@ EXPORT_SYMBOL(netif_device_attach);
  * Returns a Tx hash based on the given packet descriptor a Tx queues' number
  * to be used as a distribution range.
  */
-u16 __skb_tx_hash(const struct net_device *dev, struct sk_buff *skb,
-                 unsigned int num_tx_queues)
+static u16 skb_tx_hash(const struct net_device *dev, struct sk_buff *skb)
 {
        u32 hash;
        u16 qoffset = 0;
-       u16 qcount = num_tx_queues;
+       u16 qcount = dev->real_num_tx_queues;
 
        if (skb_rx_queue_recorded(skb)) {
                hash = skb_get_rx_queue(skb);
-               while (unlikely(hash >= num_tx_queues))
-                       hash -= num_tx_queues;
+               while (unlikely(hash >= qcount))
+                       hash -= qcount;
                return hash;
        }
 
@@ -2638,7 +2637,6 @@ u16 __skb_tx_hash(const struct net_device *dev, struct sk_buff *skb,
 
        return (u16) reciprocal_scale(skb_get_hash(skb), qcount) + qoffset;
 }
-EXPORT_SYMBOL(__skb_tx_hash);
 
 static void skb_warn_bad_offload(const struct sk_buff *skb)
 {