Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[linux-drm-fsl-dcu.git] / drivers / net / ethernet / intel / igb / igb_ethtool.c
index b0f3666b1d7f1c669181a9f62534aa8096baeccc..1c7d2381af8c626e7f5175223597257c323be2ba 100644 (file)
@@ -1983,6 +1983,10 @@ static void igb_diag_test(struct net_device *netdev,
        bool if_running = netif_running(netdev);
 
        set_bit(__IGB_TESTING, &adapter->state);
+
+       /* can't do offline tests on media switching devices */
+       if (adapter->hw.dev_spec._82575.mas_capable)
+               eth_test->flags &= ~ETH_TEST_FL_OFFLINE;
        if (eth_test->flags == ETH_TEST_FL_OFFLINE) {
                /* Offline tests */
 
@@ -2062,14 +2066,15 @@ static void igb_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
 {
        struct igb_adapter *adapter = netdev_priv(netdev);
 
-       wol->supported = WAKE_UCAST | WAKE_MCAST |
-                        WAKE_BCAST | WAKE_MAGIC |
-                        WAKE_PHY;
        wol->wolopts = 0;
 
        if (!(adapter->flags & IGB_FLAG_WOL_SUPPORTED))
                return;
 
+       wol->supported = WAKE_UCAST | WAKE_MCAST |
+                        WAKE_BCAST | WAKE_MAGIC |
+                        WAKE_PHY;
+
        /* apply any specific unsupported masks here */
        switch (adapter->hw.device_id) {
        default: