aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNishanth Aravamudan <nacc@us.ibm.com>2010-10-27 15:06:30 -0400
committerDavid S. Miller <davem@davemloft.net>2010-10-28 13:27:02 -0400
commit69dcfc8aad24fa95ae0a0ad1405cf6847e3ec14a (patch)
tree01e2ccc4f6e2cdc440262cd245ea79af2210efaa
parentb7126d8c70a1d4656f1c351de8528df22dfd2d46 (diff)
cxgb3: fix crash due to manipulating queues before registration
Along the same lines as "cxgb4: fix crash due to manipulating queues before registration" (8f6d9f40476895571df039b6f1f5230ec7faebad), before commit "net: allocate tx queues in register_netdevice" netif_tx_stop_all_queues and related functions could be used between device allocation and registration but now only after registration. cxgb4 has such a call before registration and crashes now. Move it after register_netdev. Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com> Cc: eric.dumazet@gmail.com Cc: sonnyrao@us.ibm.com Cc: Divy Le Ray <divy@chelsio.com> Cc: Dimitris Michailidis <dm@chelsio.com> Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Tested-by: Nishanth Aravamudan <nacc@us.ibm.com> Acked-by: Divy Le Ray <divy@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/cxgb3/cxgb3_main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index 4e3c12371aae..407d4e272075 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -3301,7 +3301,6 @@ static int __devinit init_one(struct pci_dev *pdev,
3301 pi->rx_offload = T3_RX_CSUM | T3_LRO; 3301 pi->rx_offload = T3_RX_CSUM | T3_LRO;
3302 pi->port_id = i; 3302 pi->port_id = i;
3303 netif_carrier_off(netdev); 3303 netif_carrier_off(netdev);
3304 netif_tx_stop_all_queues(netdev);
3305 netdev->irq = pdev->irq; 3304 netdev->irq = pdev->irq;
3306 netdev->mem_start = mmio_start; 3305 netdev->mem_start = mmio_start;
3307 netdev->mem_end = mmio_start + mmio_len - 1; 3306 netdev->mem_end = mmio_start + mmio_len - 1;
@@ -3342,6 +3341,7 @@ static int __devinit init_one(struct pci_dev *pdev,
3342 adapter->name = adapter->port[i]->name; 3341 adapter->name = adapter->port[i]->name;
3343 3342
3344 __set_bit(i, &adapter->registered_device_map); 3343 __set_bit(i, &adapter->registered_device_map);
3344 netif_tx_stop_all_queues(adapter->port[i]);
3345 } 3345 }
3346 } 3346 }
3347 if (!adapter->registered_device_map) { 3347 if (!adapter->registered_device_map) {