diff options
-rw-r--r-- | Documentation/networking/multiqueue.txt | 11 | ||||
-rw-r--r-- | drivers/net/cpmac.c | 1 | ||||
-rw-r--r-- | drivers/net/igb/igb_main.c | 2 | ||||
-rw-r--r-- | drivers/net/ixgbe/ixgbe_main.c | 2 | ||||
-rw-r--r-- | drivers/net/s2io.c | 2 | ||||
-rw-r--r-- | include/linux/netdevice.h | 4 | ||||
-rw-r--r-- | net/mac80211/main.c | 3 |
7 files changed, 1 insertions, 24 deletions
diff --git a/Documentation/networking/multiqueue.txt b/Documentation/networking/multiqueue.txt index e6dc1ee9e8f1..d391ea631141 100644 --- a/Documentation/networking/multiqueue.txt +++ b/Documentation/networking/multiqueue.txt | |||
@@ -24,15 +24,4 @@ netif_{start|stop|wake}_subqueue() functions to manage each queue while the | |||
24 | device is still operational. netdev->queue_lock is still used when the device | 24 | device is still operational. netdev->queue_lock is still used when the device |
25 | comes online or when it's completely shut down (unregister_netdev(), etc.). | 25 | comes online or when it's completely shut down (unregister_netdev(), etc.). |
26 | 26 | ||
27 | Finally, the base driver should indicate that it is a multiqueue device. The | ||
28 | feature flag NETIF_F_MULTI_QUEUE should be added to the netdev->features | ||
29 | bitmap on device initialization. Below is an example from e1000: | ||
30 | |||
31 | #ifdef CONFIG_E1000_MQ | ||
32 | if ( (adapter->hw.mac.type == e1000_82571) || | ||
33 | (adapter->hw.mac.type == e1000_82572) || | ||
34 | (adapter->hw.mac.type == e1000_80003es2lan)) | ||
35 | netdev->features |= NETIF_F_MULTI_QUEUE; | ||
36 | #endif | ||
37 | |||
38 | Author: Peter P. Waskiewicz Jr. <peter.p.waskiewicz.jr@intel.com> | 27 | Author: Peter P. Waskiewicz Jr. <peter.p.waskiewicz.jr@intel.com> |
diff --git a/drivers/net/cpmac.c b/drivers/net/cpmac.c index d630e2a72f42..7c7b54e4828e 100644 --- a/drivers/net/cpmac.c +++ b/drivers/net/cpmac.c | |||
@@ -1165,7 +1165,6 @@ static int __devinit cpmac_probe(struct platform_device *pdev) | |||
1165 | dev->set_multicast_list = cpmac_set_multicast_list; | 1165 | dev->set_multicast_list = cpmac_set_multicast_list; |
1166 | dev->tx_timeout = cpmac_tx_timeout; | 1166 | dev->tx_timeout = cpmac_tx_timeout; |
1167 | dev->ethtool_ops = &cpmac_ethtool_ops; | 1167 | dev->ethtool_ops = &cpmac_ethtool_ops; |
1168 | dev->features |= NETIF_F_MULTI_QUEUE; | ||
1169 | 1168 | ||
1170 | netif_napi_add(dev, &priv->napi, cpmac_poll, 64); | 1169 | netif_napi_add(dev, &priv->napi, cpmac_poll, 64); |
1171 | 1170 | ||
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index 64a150a16f39..471c194cd54e 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c | |||
@@ -1155,8 +1155,6 @@ static int __devinit igb_probe(struct pci_dev *pdev, | |||
1155 | if (pci_using_dac) | 1155 | if (pci_using_dac) |
1156 | netdev->features |= NETIF_F_HIGHDMA; | 1156 | netdev->features |= NETIF_F_HIGHDMA; |
1157 | 1157 | ||
1158 | netdev->features |= NETIF_F_MULTI_QUEUE; | ||
1159 | |||
1160 | netdev->features |= NETIF_F_LLTX; | 1158 | netdev->features |= NETIF_F_LLTX; |
1161 | adapter->en_mng_pt = igb_enable_mng_pass_thru(&adapter->hw); | 1159 | adapter->en_mng_pt = igb_enable_mng_pass_thru(&adapter->hw); |
1162 | 1160 | ||
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 7d8bf94d3783..e6df9233f5ef 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
@@ -3566,8 +3566,6 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev, | |||
3566 | if (pci_using_dac) | 3566 | if (pci_using_dac) |
3567 | netdev->features |= NETIF_F_HIGHDMA; | 3567 | netdev->features |= NETIF_F_HIGHDMA; |
3568 | 3568 | ||
3569 | netdev->features |= NETIF_F_MULTI_QUEUE; | ||
3570 | |||
3571 | /* make sure the EEPROM is good */ | 3569 | /* make sure the EEPROM is good */ |
3572 | if (ixgbe_validate_eeprom_checksum(hw, NULL) < 0) { | 3570 | if (ixgbe_validate_eeprom_checksum(hw, NULL) < 0) { |
3573 | dev_err(&pdev->dev, "The EEPROM Checksum Is Not Valid\n"); | 3571 | dev_err(&pdev->dev, "The EEPROM Checksum Is Not Valid\n"); |
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c index 517425dcb77c..5f0fcb04afff 100644 --- a/drivers/net/s2io.c +++ b/drivers/net/s2io.c | |||
@@ -7966,8 +7966,6 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre) | |||
7966 | dev->features |= NETIF_F_UFO; | 7966 | dev->features |= NETIF_F_UFO; |
7967 | dev->features |= NETIF_F_HW_CSUM; | 7967 | dev->features |= NETIF_F_HW_CSUM; |
7968 | } | 7968 | } |
7969 | if (config->multiq) | ||
7970 | dev->features |= NETIF_F_MULTI_QUEUE; | ||
7971 | dev->tx_timeout = &s2io_tx_watchdog; | 7969 | dev->tx_timeout = &s2io_tx_watchdog; |
7972 | dev->watchdog_timeo = WATCH_DOG_TIMEOUT; | 7970 | dev->watchdog_timeo = WATCH_DOG_TIMEOUT; |
7973 | INIT_WORK(&sp->rst_timer_task, s2io_restart_nic); | 7971 | INIT_WORK(&sp->rst_timer_task, s2io_restart_nic); |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index f25d4f5a31b0..c02227b9dd7b 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -533,7 +533,6 @@ struct net_device | |||
533 | #define NETIF_F_LLTX 4096 /* LockLess TX - deprecated. Please */ | 533 | #define NETIF_F_LLTX 4096 /* LockLess TX - deprecated. Please */ |
534 | /* do not use LLTX in new drivers */ | 534 | /* do not use LLTX in new drivers */ |
535 | #define NETIF_F_NETNS_LOCAL 8192 /* Does not change network namespaces */ | 535 | #define NETIF_F_NETNS_LOCAL 8192 /* Does not change network namespaces */ |
536 | #define NETIF_F_MULTI_QUEUE 16384 /* Has multiple TX/RX queues */ | ||
537 | #define NETIF_F_LRO 32768 /* large receive offload */ | 536 | #define NETIF_F_LRO 32768 /* large receive offload */ |
538 | 537 | ||
539 | /* Segmentation offload features */ | 538 | /* Segmentation offload features */ |
@@ -1163,11 +1162,10 @@ static inline void netif_wake_subqueue(struct net_device *dev, u16 queue_index) | |||
1163 | * @dev: network device | 1162 | * @dev: network device |
1164 | * | 1163 | * |
1165 | * Check if device has multiple transmit queues | 1164 | * Check if device has multiple transmit queues |
1166 | * Always falls if NETDEVICE_MULTIQUEUE is not configured | ||
1167 | */ | 1165 | */ |
1168 | static inline int netif_is_multiqueue(const struct net_device *dev) | 1166 | static inline int netif_is_multiqueue(const struct net_device *dev) |
1169 | { | 1167 | { |
1170 | return (!!(NETIF_F_MULTI_QUEUE & dev->features)); | 1168 | return (dev->num_tx_queues > 1); |
1171 | } | 1169 | } |
1172 | 1170 | ||
1173 | /* Use this variant when it is known for sure that it | 1171 | /* Use this variant when it is known for sure that it |
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index b486e634f4fe..c74607eda1ee 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -1678,9 +1678,6 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) | |||
1678 | if (!mdev) | 1678 | if (!mdev) |
1679 | goto fail_mdev_alloc; | 1679 | goto fail_mdev_alloc; |
1680 | 1680 | ||
1681 | if (ieee80211_num_queues(hw) > 1) | ||
1682 | mdev->features |= NETIF_F_MULTI_QUEUE; | ||
1683 | |||
1684 | mwdev = netdev_priv(mdev); | 1681 | mwdev = netdev_priv(mdev); |
1685 | mdev->ieee80211_ptr = mwdev; | 1682 | mdev->ieee80211_ptr = mwdev; |
1686 | mwdev->wiphy = local->hw.wiphy; | 1683 | mwdev->wiphy = local->hw.wiphy; |