Use netif_tx_disable to guarantee that TX queues are disabled 
when __ibmvnic_close is called by the device reset routine.

Signed-off-by: Thomas Falcon <tlfal...@linux.vnet.ibm.com>
---
 drivers/net/ethernet/ibm/ibmvnic.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/ibm/ibmvnic.c 
b/drivers/net/ethernet/ibm/ibmvnic.c
index 000cd15..d5fbf45 100644
--- a/drivers/net/ethernet/ibm/ibmvnic.c
+++ b/drivers/net/ethernet/ibm/ibmvnic.c
@@ -886,7 +886,13 @@ static int __ibmvnic_close(struct net_device *netdev)
        int i;
 
        adapter->state = VNIC_CLOSING;
-       netif_tx_stop_all_queues(netdev);
+
+       /* ensure that transmissions are stopped if called by do_reset */
+       if (adapter->resetting)
+               netif_tx_disable(netdev);
+       else
+               netif_tx_stop_all_queues(netdev);
+
        ibmvnic_napi_disable(adapter);
 
        if (adapter->tx_scrq) {
-- 
1.8.5.6

Reply via email to