|
@@ -247,6 +247,7 @@ static const struct flash_spec flash_5709 = {
|
|
|
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)
|
|
|
{
|
|
@@ -6270,6 +6271,7 @@ open_err:
|
|
|
bnx2_free_skbs(bp);
|
|
|
bnx2_free_irq(bp);
|
|
|
bnx2_free_mem(bp);
|
|
|
+ bnx2_del_napi(bp);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
@@ -6537,6 +6539,7 @@ 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);
|
|
@@ -8227,7 +8230,16 @@ bnx2_bus_string(struct bnx2 *bp, char *str)
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
-static void __devinit
|
|
|
+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
|
|
|
bnx2_init_napi(struct bnx2 *bp)
|
|
|
{
|
|
|
int i;
|