fix igc resource leaks

This commit is contained in:
Bjarne von Horn 2024-02-06 14:10:10 +01:00
parent 777acd8517
commit 6f17f8d73b
4 changed files with 23 additions and 40 deletions

View File

@ -108,7 +108,7 @@ void igc_reset(struct igc_adapter *adapter)
/* Re-establish EEE setting */ /* Re-establish EEE setting */
igc_set_eee_i225(hw, true, true, true); igc_set_eee_i225(hw, true, true, true);
if (!get_ecdev(adapter) && !netif_running(adapter->netdev)) if (!netif_running(adapter->netdev))
igc_power_down_phy_copper_base(&adapter->hw); igc_power_down_phy_copper_base(&adapter->hw);
/* Enable HW to recognize an 802.1Q VLAN Ethernet packet */ /* Enable HW to recognize an 802.1Q VLAN Ethernet packet */
@ -3602,9 +3602,7 @@ static void igc_reset_q_vector(struct igc_adapter *adapter, int v_idx)
if (q_vector->rx.ring) if (q_vector->rx.ring)
adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL; adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL;
if (!get_ecdev(adapter)) { netif_napi_del(&q_vector->napi);
netif_napi_del(&q_vector->napi);
}
} }
/** /**
@ -4070,10 +4068,8 @@ static int igc_alloc_q_vector(struct igc_adapter *adapter,
return -ENOMEM; return -ENOMEM;
/* initialize NAPI */ /* initialize NAPI */
if (!get_ecdev(adapter)) { netif_napi_add(adapter->netdev, &q_vector->napi,
netif_napi_add(adapter->netdev, &q_vector->napi, igc_poll, 64);
igc_poll, 64);
}
/* tie q_vector and adapter together */ /* tie q_vector and adapter together */
adapter->q_vector[v_idx] = q_vector; adapter->q_vector[v_idx] = q_vector;

View File

@ -111,7 +111,7 @@ void igc_reset(struct igc_adapter *adapter)
/* Re-establish EEE setting */ /* Re-establish EEE setting */
igc_set_eee_i225(hw, true, true, true); igc_set_eee_i225(hw, true, true, true);
if (!adapter->ecdev && !netif_running(adapter->netdev)) if (!netif_running(adapter->netdev))
igc_power_down_phy_copper_base(&adapter->hw); igc_power_down_phy_copper_base(&adapter->hw);
/* Enable HW to recognize an 802.1Q VLAN Ethernet packet */ /* Enable HW to recognize an 802.1Q VLAN Ethernet packet */
@ -4101,9 +4101,7 @@ static void igc_reset_q_vector(struct igc_adapter *adapter, int v_idx)
if (q_vector->rx.ring) if (q_vector->rx.ring)
adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL; adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL;
if (!adapter->ecdev) { netif_napi_del(&q_vector->napi);
netif_napi_del(&q_vector->napi);
}
} }
/** /**
@ -4568,10 +4566,7 @@ static int igc_alloc_q_vector(struct igc_adapter *adapter,
if (!q_vector) if (!q_vector)
return -ENOMEM; return -ENOMEM;
if (!adapter->ecdev) { netif_napi_add(adapter->netdev, &q_vector->napi, igc_poll);
/* initialize NAPI */
netif_napi_add(adapter->netdev, &q_vector->napi, igc_poll);
}
/* tie q_vector and adapter together */ /* tie q_vector and adapter together */
adapter->q_vector[v_idx] = q_vector; adapter->q_vector[v_idx] = q_vector;

View File

@ -110,7 +110,7 @@ void igc_reset(struct igc_adapter *adapter)
/* Re-establish EEE setting */ /* Re-establish EEE setting */
igc_set_eee_i225(hw, true, true, true); igc_set_eee_i225(hw, true, true, true);
if (!adapter->ecdev && !netif_running(adapter->netdev)) if (!netif_running(adapter->netdev))
igc_power_down_phy_copper_base(&adapter->hw); igc_power_down_phy_copper_base(&adapter->hw);
/* Enable HW to recognize an 802.1Q VLAN Ethernet packet */ /* Enable HW to recognize an 802.1Q VLAN Ethernet packet */
@ -4152,9 +4152,7 @@ static void igc_reset_q_vector(struct igc_adapter *adapter, int v_idx)
if (q_vector->rx.ring) if (q_vector->rx.ring)
adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL; adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL;
if (!adapter->ecdev) { netif_napi_del(&q_vector->napi);
netif_napi_del(&q_vector->napi);
}
} }
/** /**
@ -4619,10 +4617,8 @@ static int igc_alloc_q_vector(struct igc_adapter *adapter,
if (!q_vector) if (!q_vector)
return -ENOMEM; return -ENOMEM;
if (!adapter->ecdev) { /* initialize NAPI */
/* initialize NAPI */ netif_napi_add(adapter->netdev, &q_vector->napi, igc_poll);
netif_napi_add(adapter->netdev, &q_vector->napi, igc_poll);
}
/* tie q_vector and adapter together */ /* tie q_vector and adapter together */
adapter->q_vector[v_idx] = q_vector; adapter->q_vector[v_idx] = q_vector;

View File

@ -110,7 +110,7 @@ void igc_reset(struct igc_adapter *adapter)
/* Re-establish EEE setting */ /* Re-establish EEE setting */
igc_set_eee_i225(hw, true, true, true); igc_set_eee_i225(hw, true, true, true);
if (!adapter->ecdev && !netif_running(adapter->netdev)) if (!netif_running(adapter->netdev))
igc_power_down_phy_copper_base(&adapter->hw); igc_power_down_phy_copper_base(&adapter->hw);
/* Enable HW to recognize an 802.1Q VLAN Ethernet packet */ /* Enable HW to recognize an 802.1Q VLAN Ethernet packet */
@ -4215,9 +4215,7 @@ static void igc_reset_q_vector(struct igc_adapter *adapter, int v_idx)
if (q_vector->rx.ring) if (q_vector->rx.ring)
adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL; adapter->rx_ring[q_vector->rx.ring->queue_index] = NULL;
if (!adapter->ecdev) { netif_napi_del(&q_vector->napi);
netif_napi_del(&q_vector->napi);
}
} }
/** /**
@ -4682,10 +4680,8 @@ static int igc_alloc_q_vector(struct igc_adapter *adapter,
if (!q_vector) if (!q_vector)
return -ENOMEM; return -ENOMEM;
if (!adapter->ecdev) { /* initialize NAPI */
/* initialize NAPI */ netif_napi_add(adapter->netdev, &q_vector->napi, igc_poll);
netif_napi_add(adapter->netdev, &q_vector->napi, igc_poll);
}
/* tie q_vector and adapter together */ /* tie q_vector and adapter together */
adapter->q_vector[v_idx] = q_vector; adapter->q_vector[v_idx] = q_vector;