diff options
| author | David S. Miller <davem@davemloft.net> | 2010-04-06 23:53:30 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-04-06 23:53:30 -0700 | 
| commit | 4a35ecf8bf1c4b039503fa554100fe85c761de76 (patch) | |
| tree | 9b75f5d5636004d9a9aa496924377379be09aa1f /drivers/net/bnx2.c | |
| parent | b4d562e3c3553ac58c7120555c4e4aefbb090a2a (diff) | |
| parent | fb9e2d887243499b8d28efcf80821c4f6a092395 (diff) | |
| download | olio-linux-3.10-4a35ecf8bf1c4b039503fa554100fe85c761de76.tar.xz olio-linux-3.10-4a35ecf8bf1c4b039503fa554100fe85c761de76.zip  | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
	drivers/net/bonding/bond_main.c
	drivers/net/via-velocity.c
	drivers/net/wireless/iwlwifi/iwl-agn.c
Diffstat (limited to 'drivers/net/bnx2.c')
| -rw-r--r-- | drivers/net/bnx2.c | 14 | 
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index 0b69ffb7951..802b538502e 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c @@ -246,6 +246,8 @@ static const struct flash_spec flash_5709 = {  MODULE_DEVICE_TABLE(pci, bnx2_pci_tbl); +static void bnx2_init_napi(struct bnx2 *bp); +  static inline u32 bnx2_tx_avail(struct bnx2 *bp, struct bnx2_tx_ring_info *txr)  {  	u32 diff; @@ -6196,6 +6198,7 @@ bnx2_open(struct net_device *dev)  	bnx2_disable_int(bp);  	bnx2_setup_int_mode(bp, disable_msi); +	bnx2_init_napi(bp);  	bnx2_napi_enable(bp);  	rc = bnx2_alloc_mem(bp);  	if (rc) @@ -7642,9 +7645,11 @@ poll_bnx2(struct net_device *dev)  	int i;  	for (i = 0; i < bp->irq_nvecs; i++) { -		disable_irq(bp->irq_tbl[i].vector); -		bnx2_interrupt(bp->irq_tbl[i].vector, &bp->bnx2_napi[i]); -		enable_irq(bp->irq_tbl[i].vector); +		struct bnx2_irq *irq = &bp->irq_tbl[i]; + +		disable_irq(irq->vector); +		irq->handler(irq->vector, &bp->bnx2_napi[i]); +		enable_irq(irq->vector);  	}  }  #endif @@ -8206,7 +8211,7 @@ bnx2_init_napi(struct bnx2 *bp)  {  	int i; -	for (i = 0; i < BNX2_MAX_MSIX_VEC; i++) { +	for (i = 0; i < bp->irq_nvecs; i++) {  		struct bnx2_napi *bnapi = &bp->bnx2_napi[i];  		int (*poll)(struct napi_struct *, int); @@ -8275,7 +8280,6 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  	dev->ethtool_ops = &bnx2_ethtool_ops;  	bp = netdev_priv(dev); -	bnx2_init_napi(bp);  	pci_set_drvdata(pdev, dev);  |