diff options
Diffstat (limited to 'drivers/net/xen-netback/interface.c')
-rw-r--r-- | drivers/net/xen-netback/interface.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c index 182d6770f102..6da12518e693 100644 --- a/drivers/net/xen-netback/interface.c +++ b/drivers/net/xen-netback/interface.c | |||
@@ -153,6 +153,13 @@ static u16 xenvif_select_queue(struct net_device *dev, struct sk_buff *skb, | |||
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 | unsigned int num_queues; | ||
157 | |||
158 | /* If queues are not set up internally - always return 0 | ||
159 | * as the packet going to be dropped anyway */ | ||
160 | num_queues = READ_ONCE(vif->num_queues); | ||
161 | if (num_queues < 1) | ||
162 | return 0; | ||
156 | 163 | ||
157 | if (vif->hash.alg == XEN_NETIF_CTRL_HASH_ALGORITHM_NONE) | 164 | if (vif->hash.alg == XEN_NETIF_CTRL_HASH_ALGORITHM_NONE) |
158 | return fallback(dev, skb, NULL) % dev->real_num_tx_queues; | 165 | return fallback(dev, skb, NULL) % dev->real_num_tx_queues; |