--- 4874b2bd6bbd6ffc501fc7263486b9bf705e332a +++ a9aa957f3a7e6d347426e041ea7ca6bdeeedb764 @@ -247,9 +247,6 @@ static const struct flash_spec flash_570 MODULE_DEVICE_TABLE(pci, bnx2_pci_tbl); -static void bnx2_init_napi(struct bnx2 *bp); -static void bnx2_del_napi(struct bnx2 *bp); - static inline u32 bnx2_tx_avail(struct bnx2 *bp, struct bnx2_tx_ring_info *txr) { u32 diff; @@ -6176,7 +6173,6 @@ 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) @@ -6238,7 +6234,6 @@ open_err: bnx2_free_skbs(bp); bnx2_free_irq(bp); bnx2_free_mem(bp); - bnx2_del_napi(bp); return rc; } @@ -6446,7 +6441,6 @@ bnx2_close(struct net_device *dev) bnx2_free_irq(bp); bnx2_free_skbs(bp); bnx2_free_mem(bp); - bnx2_del_napi(bp); bp->link_up = 0; netif_carrier_off(bp->dev); bnx2_set_power_state(bp, PCI_D3hot); @@ -8022,21 +8016,12 @@ bnx2_bus_string(struct bnx2 *bp, char *s return str; } -static void -bnx2_del_napi(struct bnx2 *bp) -{ - int i; - - for (i = 0; i < bp->irq_nvecs; i++) - netif_napi_del(&bp->bnx2_napi[i].napi); -} - -static void +static void __devinit bnx2_init_napi(struct bnx2 *bp) { int i; - for (i = 0; i < bp->irq_nvecs; i++) { + for (i = 0; i < BNX2_MAX_MSIX_VEC; i++) { struct bnx2_napi *bnapi = &bp->bnx2_napi[i]; int (*poll)(struct napi_struct *, int); @@ -8105,6 +8090,7 @@ bnx2_init_one(struct pci_dev *pdev, cons dev->ethtool_ops = &bnx2_ethtool_ops; bp = netdev_priv(dev); + bnx2_init_napi(bp); pci_set_drvdata(pdev, dev);