OSDN Git Service

fm10k: print error message when stop_hw fails
authorJacob Keller <jacob.e.keller@intel.com>
Thu, 4 Feb 2016 18:47:57 +0000 (10:47 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 5 Apr 2016 19:49:14 +0000 (12:49 -0700)
fm10k_stop_hw_generic calls fm10k_disable_queues_generic, which may
return an error code indicating that the queues were not stopped within
the time limit. Notify the user by displaying a message in the kernel
message ring, in a similar way to how we notify the user when reset_hw
fails. There isn't much we can do to recover from this error, so
currently nothing else is done.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Krishneil Singh <Krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/fm10k/fm10k_pci.c

index ed1f8cf..3c7c819 100644 (file)
@@ -1656,6 +1656,7 @@ void fm10k_down(struct fm10k_intfc *interface)
 {
        struct net_device *netdev = interface->netdev;
        struct fm10k_hw *hw = &interface->hw;
+       int err;
 
        /* signal that we are down to the interrupt handler and service task */
        set_bit(__FM10K_DOWN, &interface->state);
@@ -1680,7 +1681,9 @@ void fm10k_down(struct fm10k_intfc *interface)
        fm10k_update_stats(interface);
 
        /* Disable DMA engine for Tx/Rx */
-       hw->mac.ops.stop_hw(hw);
+       err = hw->mac.ops.stop_hw(hw);
+       if (err)
+               dev_err(&interface->pdev->dev, "stop_hw failed: %d\n", err);
 
        /* free any buffers still on the rings */
        fm10k_clean_all_tx_rings(interface);