Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
This commit is contained in:
@@ -1012,7 +1012,8 @@ static void igb_free_q_vector(struct igb_adapter *adapter, int v_idx)
|
||||
/* igb_get_stats64() might access the rings on this vector,
|
||||
* we must wait a grace period before freeing it.
|
||||
*/
|
||||
kfree_rcu(q_vector, rcu);
|
||||
if (q_vector)
|
||||
kfree_rcu(q_vector, rcu);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1792,8 +1793,10 @@ void igb_down(struct igb_adapter *adapter)
|
||||
adapter->flags &= ~IGB_FLAG_NEED_LINK_UPDATE;
|
||||
|
||||
for (i = 0; i < adapter->num_q_vectors; i++) {
|
||||
napi_synchronize(&(adapter->q_vector[i]->napi));
|
||||
napi_disable(&(adapter->q_vector[i]->napi));
|
||||
if (adapter->q_vector[i]) {
|
||||
napi_synchronize(&adapter->q_vector[i]->napi);
|
||||
napi_disable(&adapter->q_vector[i]->napi);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3714,7 +3717,8 @@ static void igb_free_all_tx_resources(struct igb_adapter *adapter)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < adapter->num_tx_queues; i++)
|
||||
igb_free_tx_resources(adapter->tx_ring[i]);
|
||||
if (adapter->tx_ring[i])
|
||||
igb_free_tx_resources(adapter->tx_ring[i]);
|
||||
}
|
||||
|
||||
void igb_unmap_and_free_tx_resource(struct igb_ring *ring,
|
||||
@@ -3779,7 +3783,8 @@ static void igb_clean_all_tx_rings(struct igb_adapter *adapter)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < adapter->num_tx_queues; i++)
|
||||
igb_clean_tx_ring(adapter->tx_ring[i]);
|
||||
if (adapter->tx_ring[i])
|
||||
igb_clean_tx_ring(adapter->tx_ring[i]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3816,7 +3821,8 @@ static void igb_free_all_rx_resources(struct igb_adapter *adapter)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < adapter->num_rx_queues; i++)
|
||||
igb_free_rx_resources(adapter->rx_ring[i]);
|
||||
if (adapter->rx_ring[i])
|
||||
igb_free_rx_resources(adapter->rx_ring[i]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3871,7 +3877,8 @@ static void igb_clean_all_rx_rings(struct igb_adapter *adapter)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < adapter->num_rx_queues; i++)
|
||||
igb_clean_rx_ring(adapter->rx_ring[i]);
|
||||
if (adapter->rx_ring[i])
|
||||
igb_clean_rx_ring(adapter->rx_ring[i]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -7401,6 +7408,8 @@ static int igb_resume(struct device *dev)
|
||||
pci_restore_state(pdev);
|
||||
pci_save_state(pdev);
|
||||
|
||||
if (!pci_device_is_present(pdev))
|
||||
return -ENODEV;
|
||||
err = pci_enable_device_mem(pdev);
|
||||
if (err) {
|
||||
dev_err(&pdev->dev,
|
||||
|
Reference in New Issue
Block a user