diff options
Diffstat (limited to 'drivers/net/xen-netback/interface.c')
| -rw-r--r-- | drivers/net/xen-netback/interface.c | 10 |
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 | ||
| 150 | static u16 xenvif_select_queue(struct net_device *dev, struct sk_buff *skb, | 150 | static 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 | ||
| 168 | static int xenvif_start_xmit(struct sk_buff *skb, struct net_device *dev) | 169 | static netdev_tx_t |
| 170 | xenvif_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; |
