net: RPS: Make hardware-accelerated RFS conditional on NETIF_F_NTUPLE
authorBen Hutchings <bhutchings@solarflare.com>
Tue, 15 Feb 2011 20:32:04 +0000 (20:32 +0000)
committerBen Hutchings <bhutchings@solarflare.com>
Tue, 15 Feb 2011 20:36:11 +0000 (20:36 +0000)
For testing and debugging purposes it is useful to be able to disable
hardware acceleration of RFS without disabling RFS altogether.  Since
this is a similar feature to 'n-tuple' flow steering through the
ethtool API, test the same feature flag that controls that.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
net/core/dev.c

index 30c71f9..54aaca6 100644 (file)
@@ -2607,7 +2607,8 @@ set_rps_cpu(struct net_device *dev, struct sk_buff *skb,
                int rc;
 
                /* Should we steer this flow to a different hardware queue? */
-               if (!skb_rx_queue_recorded(skb) || !dev->rx_cpu_rmap)
+               if (!skb_rx_queue_recorded(skb) || !dev->rx_cpu_rmap ||
+                   !(dev->features & NETIF_F_NTUPLE))
                        goto out;
                rxq_index = cpu_rmap_lookup_index(dev->rx_cpu_rmap, next_cpu);
                if (rxq_index == skb_get_rx_queue(skb))