mirror of
https://github.com/torvalds/linux.git
synced 2024-12-14 15:13:52 +00:00
ibmvnic: Fix cleanup of SKB's on driver close
A race condition occurs when closing the driver. Free'ing of skb's can race between the close routine and ibmvnic_tx_interrupt. To fix this we move the claenup of tx pools during close to after the sub-CRQ interrupts are disabled. Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2ce9e4efbf
commit
10f7621588
@ -804,7 +804,6 @@ static int __ibmvnic_close(struct net_device *netdev)
|
||||
adapter->state = VNIC_CLOSING;
|
||||
netif_tx_stop_all_queues(netdev);
|
||||
ibmvnic_napi_disable(adapter);
|
||||
clean_tx_pools(adapter);
|
||||
|
||||
if (adapter->tx_scrq) {
|
||||
for (i = 0; i < adapter->req_tx_queues; i++)
|
||||
@ -833,6 +832,7 @@ static int __ibmvnic_close(struct net_device *netdev)
|
||||
}
|
||||
}
|
||||
|
||||
clean_tx_pools(adapter);
|
||||
adapter->state = VNIC_CLOSED;
|
||||
return rc;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user