diff options
author | Dimitris Michailidis <dm@chelsio.com> | 2010-07-11 12:01:15 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-07-11 17:07:45 -0700 |
commit | f7cabcdd51480282b58c09e5fe1c4835aaf98a66 (patch) | |
tree | cb25ebf487a101850d28ff8f855e69ebbe08c41d /drivers/net/cxgb4/cxgb4_main.c | |
parent | 98e32a9ceea8e3a0cd6ea89c9ce8e09a74b03b78 (diff) |
cxgb4: move the choice of interrupt type before net_device registration
We need to settle on the kind of interrupts we'll be using, a choice that
also impacts the number of queues, before registering and making visible
the net_devices. Move the relevant code up a bit.
Signed-off-by: Dimitris Michailidis <dm@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/cxgb4/cxgb4_main.c')
-rw-r--r-- | drivers/net/cxgb4/cxgb4_main.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/cxgb4/cxgb4_main.c b/drivers/net/cxgb4/cxgb4_main.c index 26199979290..743dc6faec5 100644 --- a/drivers/net/cxgb4/cxgb4_main.c +++ b/drivers/net/cxgb4/cxgb4_main.c @@ -3507,6 +3507,12 @@ static int __devinit init_one(struct pci_dev *pdev, adapter->params.offload = 0; } + /* See what interrupts we'll be using */ + if (msi > 1 && enable_msix(adapter) == 0) + adapter->flags |= USING_MSIX; + else if (msi > 0 && pci_enable_msi(pdev) == 0) + adapter->flags |= USING_MSI; + /* * The card is now ready to go. If any errors occur during device * registration we do not fail the whole card but rather proceed only @@ -3542,12 +3548,6 @@ static int __devinit init_one(struct pci_dev *pdev, setup_debugfs(adapter); } - /* See what interrupts we'll be using */ - if (msi > 1 && enable_msix(adapter) == 0) - adapter->flags |= USING_MSIX; - else if (msi > 0 && pci_enable_msi(pdev) == 0) - adapter->flags |= USING_MSI; - if (is_offload(adapter)) attach_ulds(adapter); @@ -3571,6 +3571,7 @@ sriov: free_netdev(adapter->port[i]); if (adapter->flags & FW_OK) t4_fw_bye(adapter, 0); + disable_msi(adapter); out_unmap_bar: iounmap(adapter->regs); out_free_adapter: |