e1000: e1000_adapter->polling_netdev is useless
Subsystems (2)
e1000_adapter->polling_netdev is not actually used after allocated. So, my question is that is it useless?
David Miller
maintainerFrom: Wang Chen <[email protected]>
Date: Tue, 02 Dec 2008 21:33:09 +0800
Quoted 2 lines
e1000_adapter->polling_netdevis not actually used after allocated. So, my question is that is it useless?
It's probably a leftover from before we added support for multiqueue NAPI.
Intel folks can probably confirm.
Quoted 12 lines · David Miller
From: Wang Chen <[email protected]>
Date: Tue, 02 Dec 2008 21:33:09 +0800Quoted 2 lines
e1000_adapter->polling_netdevis not actually used after allocated. So, my question is that is it useless?It's probably a leftover from before we added support for multiqueue NAPI.
Intel folks can probably confirm.
--
Yeah, Dave appears to be correct.
Signature · 2 lines
Cheers, Jeff
PATCH 1/2 e1000: e1000_adapter->polling_netdev is useless
In reply to David MillerDavid Miller said the following on 2008-12-3 7:06:
Quoted 10 lines
From: Wang Chen <[email protected]>
Date: Tue, 02 Dec 2008 21:33:09 +0800Quoted 2 lines
e1000_adapter->polling_netdevis not actually used after allocated. So, my question is that is it useless?It's probably a leftover from before we added support for multiqueue NAPI.
Intel folks can probably confirm.
Commit bea3348eef27e6044b6161fd04c3152215f96411
"[NET]: Make NAPI polling independent of struct net_device objects." made NAPI polling to be independent of net_device.
So e1000_adapter->polling_netdev is no longer used.
Kill it.
--- drivers/net/e1000/e1000.h | 1 - drivers/net/e1000/e1000_main.c | 27 +-------------------------- 2 files changed, 1 insertions(+), 27 deletions(-)
drivers/net/e1000/e1000.h +0 -1
@@ -284,7 +284,6 @@ struct e1000_adapter { int cleaned_count);struct e1000_rx_ring *rx_ring;/* One per active queue */ struct napi_struct napi; -struct net_device *polling_netdev;/* One per active queue */ int num_tx_queues;int num_rx_queues;
drivers/net/e1000/e1000_main.c +1 -26
@@ -1242,12 +1242,8 @@ err_eeprom:if (hw->flash_address)iounmap (hw->flash_address); err_flashmap: -for (i =0 ; i < adapter->num_rx_queues; i++) -dev_put (&adapter->polling_netdev[i]); -kfree (adapter->tx_ring);kfree (adapter->rx_ring); -kfree (adapter->polling_netdev); err_sw_init:iounmap (hw->hw_addr); err_ioremap:
@@ -1275,7 +1271,6 @@ static void __devexit e1000_remove(struct pci_dev *pdev)struct net_device *netdev =pci_get_drvdata (pdev);struct e1000_adapter *adapter =netdev_priv (netdev);struct e1000_hw *hw = &adapter->hw; -int i;cancel_work_sync (&adapter->reset_task);
@@ -1285,9 +1280,6 @@ static void __devexit e1000_remove(struct pci_dev *pdev)* would have already happened in close and is redundant. */ e1000_release_hw_control (adapter); -for (i =0 ; i < adapter->num_rx_queues; i++) -dev_put (&adapter->polling_netdev[i]); -unregister_netdev (netdev);if (!e1000_check_phy_reset_block (hw))
@@ -1295,7 +1287,6 @@ static void __devexit e1000_remove(struct pci_dev *pdev)kfree (adapter->tx_ring);kfree (adapter->rx_ring); -kfree (adapter->polling_netdev);iounmap (hw->hw_addr);if (hw->flash_address)
@@ -1321,7 +1312,6 @@ static int __devinit e1000_sw_init(struct e1000_adapter *adapter)struct e1000_hw *hw = &adapter->hw;struct net_device *netdev = adapter->netdev;struct pci_dev *pdev = adapter->pdev; -int i;/* PCI config space info */
@@ -1378,11 +1368,6 @@ static int __devinit e1000_sw_init(struct e1000_adapter *adapter)return -ENOMEM ; } -for (i =0 ; i < adapter->num_rx_queues; i++) { - adapter->polling_netdev[i].priv = adapter; -dev_hold (&adapter->polling_netdev[i]); -set_bit (__LINK_STATE_START, &adapter->polling_netdev[i].state); - }spin_lock_init (&adapter->tx_queue_lock);/* Explicitly disable IRQ since the NIC can be in any state. */
@@ -1400,8 +1385,7 @@ static int __devinit e1000_sw_init(struct e1000_adapter *adapter)* @adapter: board private structure to initialize * * We allocate one ring per queue at run-time since we don't know the -* number of queues at compile-time. The polling_netdev array is -* intended for Multiqueue, but should work fine with a single queue. +* number of queues at compile-time. **/ static int __devinit e1000_alloc_queues (struct e1000_adapter *adapter)
@@ -1418,15 +1402,6 @@ static int __devinit e1000_alloc_queues(struct e1000_adapter *adapter)return -ENOMEM ; } - adapter->polling_netdev =kcalloc (adapter->num_rx_queues, -sizeof (struct net_device ), -GFP_KERNEL ); -if (!adapter->polling_netdev) { -kfree (adapter->tx_ring); -kfree (adapter->rx_ring); -return -ENOMEM ; - } -return E1000_SUCCESS ; }
Signature · 1 line
1.5.3.4
PATCH 2/2 ixgbe: function comment typo
In reply to David MillerSeems the ixgbe's code was copied from e1000.
The comment talks about something not exist.
--- drivers/net/ixgbe/ixgbe_main.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-)
drivers/net/ixgbe/ixgbe_main.c +1 -2
@@ -2521,8 +2521,7 @@ static void ixgbe_cache_ring_register(struct ixgbe_adapter *adapter)* @adapter: board private structure to initialize * * We allocate one ring per queue at run-time since we don't know the -* number of queues at compile-time. The polling_netdev array is -* intended for Multiqueue, but should work fine with a single queue. +* number of queues at compile-time. **/ static int ixgbe_alloc_queues (struct ixgbe_adapter *adapter) {
Signature · 1 line
1.5.3.4
Quoted 25 lines
-----Original Message-----
From: Wang Chen [mailto:[email protected]]
Sent: Wednesday, December 03, 2008 4:58 AM
To: David Miller
Cc: Kirsher, Jeffrey T; [email protected]
Subject: [PATCH next 1/2]e1000:e1000_adapter->polling_netdevis uselessDavid Miller said the following on 2008-12-3 7:06:
Quoted 10 lines
From: Wang Chen <[email protected]>
Date: Tue, 02 Dec 2008 21:33:09 +0800Quoted 2 lines
e1000_adapter->polling_netdevis not actually used after allocated. So, my question is that is it useless?It's probably a leftover from before we added support for multiqueue NAPI.
Intel folks can probably confirm.
Commit
bea3348eef27e6044b6161fd04c3152215f96411
"[NET]: Make NAPI polling independent of structnet_deviceobjects." made NAPI polling to be independent ofnet_device.
Soe1000_adapter->polling_netdevis no longer used.
Kill it.
Quoted 6 lines
Signed-off-by Wang Chen <[email protected]>---
drivers/net/e1000/e1000.h| 1 -drivers/net/e1000/e1000_main.c| 27 +--------------------------2 files changed, 1 insertions(+), 27 deletions(-)
Just to make sure that this does not break anything, I currently have this patch in testing.
Cheers,
Jeff
RE: [PATCH next 2/2]ixgbe: function comment typo
In reply to Wang ChenQuoted 7 lines
-----Original Message-----
From: Wang Chen [mailto:[email protected]]
Sent: Wednesday, December 03, 2008 4:58 AM
To: David Miller
Cc: Kirsher, Jeffrey T; [email protected]
Subject: [PATCH next 2/2]ixgbe: function comment typo
Quoted 7 lines
Seems the ixgbe's code was copied from e1000. The comment talks about something not exist.
Signed-off-by Wang Chen <[email protected]>---
drivers/net/ixgbe/ixgbe_main.c| 3 +--1 files changed, 1 insertions(+), 2 deletions(-)
Cheers,
Jeff
Quoted 18 lines · Wang Chen
David Miller said the following on 2008-12-3 7:06:
Quoted 10 lines
From: Wang Chen <[email protected]>
Date: Tue, 02 Dec 2008 21:33:09 +0800Quoted 2 lines
e1000_adapter->polling_netdevis not actually used after allocated. So, my question is that is it useless?It's probably a leftover from before we added support for multiqueue NAPI.
Intel folks can probably confirm.
Commit
bea3348eef27e6044b6161fd04c3152215f96411
"[NET]: Make NAPI polling independent of structnet_deviceobjects." made NAPI polling to be independent ofnet_device.
Soe1000_adapter->polling_netdevis no longer used.
Kill it.
Quoted 6 lines
Signed-off-by Wang Chen <[email protected]>--- drivers/net/e1000/e1000.h | 1 - drivers/net/e1000/e1000_main.c | 27 +-------------------------- 2 files changed, 1 insertions(+), 27 deletions(-)
Testing looks good.
Signature · 2 lines
Cheers, Jeff
Re: [PATCH next 2/2]ixgbe: function comment typo
In reply to Kirsher, Jeffrey TFrom: "Kirsher, Jeffrey T" <[email protected]>
Date: Wed, 3 Dec 2008 14:42:51 -0800
Quoted 10 lines
Quoted 10 lines
-----Original Message-----
From: Wang Chen [mailto:[email protected]]
Sent: Wednesday, December 03, 2008 4:58 AM
To: David Miller
Cc: Kirsher, Jeffrey T; [email protected]
Subject: [PATCH next 2/2]ixgbe: function comment typoSeems the ixgbe's code was copied from e1000. The comment talks about something not exist.
Quoted 6 lines
Quoted 4 lines
Signed-off-by Wang Chen <[email protected]>---
drivers/net/ixgbe/ixgbe_main.c| 3 +--1 files changed, 1 insertions(+), 2 deletions(-)Acked-by Jeff Kirsher <[email protected]>
Applied, thanks everyone.
From: Wang Chen <[email protected]>
Date: Wed, 03 Dec 2008 20:57:41 +0800
Quoted 12 lines
David Miller said the following on 2008-12-3 7:06:
Quoted 10 lines
From: Wang Chen <[email protected]>
Date: Tue, 02 Dec 2008 21:33:09 +0800Quoted 2 lines
e1000_adapter->polling_netdevis not actually used after allocated. So, my question is that is it useless?It's probably a leftover from before we added support for multiqueue NAPI.
Intel folks can probably confirm.
Quoted 7 lines
Commit
bea3348eef27e6044b6161fd04c3152215f96411
"[NET]: Make NAPI polling independent of structnet_deviceobjects." made NAPI polling to be independent ofnet_device.
Soe1000_adapter->polling_netdevis no longer used.
Kill it.Signed-off-by Wang Chen <[email protected]>
Applied, thanks Wang.
Jeff, I know you said you are regression-testing this. If you find some problem we can revert or add a fix.
Thanks!