aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/xen-netback/interface.c
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2019-01-14 18:33:23 -0500
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2019-01-14 18:33:23 -0500
commit3eb66e91a25497065c5322b1268cbc3953642227 (patch)
tree69f8e1312323ceeafc1a0fdc24d168e1617ffed4 /drivers/net/xen-netback/interface.c
parent4add635b4e00dd7d6aad83a937afdf1957196da6 (diff)
parent8fe28cb58bcb235034b64cbbb7550a8a43fd88be (diff)
Merge tag 'v4.20' into for-linus
Sync with mainline to get linux/overflow.h among other things.
Diffstat (limited to 'drivers/net/xen-netback/interface.c')
-rw-r--r--drivers/net/xen-netback/interface.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c
index 78ebe494fef0..182d6770f102 100644
--- a/drivers/net/xen-netback/interface.c
+++ b/drivers/net/xen-netback/interface.c
@@ -148,24 +148,26 @@ void xenvif_wake_queue(struct xenvif_queue *queue)
148} 148}
149 149
150static u16 xenvif_select_queue(struct net_device *dev, struct sk_buff *skb, 150static u16 xenvif_select_queue(struct net_device *dev, struct sk_buff *skb,
151 void *accel_priv, 151 struct net_device *sb_dev,
152 select_queue_fallback_t fallback) 152 select_queue_fallback_t fallback)
153{ 153{
154 struct xenvif *vif = netdev_priv(dev); 154 struct xenvif *vif = netdev_priv(dev);
155 unsigned int size = vif->hash.size; 155 unsigned int size = vif->hash.size;
156 156
157 if (vif->hash.alg == XEN_NETIF_CTRL_HASH_ALGORITHM_NONE) 157 if (vif->hash.alg == XEN_NETIF_CTRL_HASH_ALGORITHM_NONE)
158 return fallback(dev, skb) % dev->real_num_tx_queues; 158 return fallback(dev, skb, NULL) % dev->real_num_tx_queues;
159 159
160 xenvif_set_skb_hash(vif, skb); 160 xenvif_set_skb_hash(vif, skb);
161 161
162 if (size == 0) 162 if (size == 0)
163 return skb_get_hash_raw(skb) % dev->real_num_tx_queues; 163 return skb_get_hash_raw(skb) % dev->real_num_tx_queues;
164 164
165 return vif->hash.mapping[skb_get_hash_raw(skb) % size]; 165 return vif->hash.mapping[vif->hash.mapping_sel]
166 [skb_get_hash_raw(skb) % size];
166} 167}
167 168
168static int xenvif_start_xmit(struct sk_buff *skb, struct net_device *dev) 169static netdev_tx_t
170xenvif_start_xmit(struct sk_buff *skb, struct net_device *dev)
169{ 171{
170 struct xenvif *vif = netdev_priv(dev); 172 struct xenvif *vif = netdev_priv(dev);
171 struct xenvif_queue *queue = NULL; 173 struct xenvif_queue *queue = NULL;