qede: Allow WoL to activate by default
authorMintz, Yuval <Yuval.Mintz@cavium.com>
Sun, 21 May 2017 09:10:52 +0000 (12:10 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 21 May 2017 16:56:53 +0000 (12:56 -0400)
When management firmware declares that the device is WoL-capable,
the default driver behavior would be to allow the management firmware
to take the decision of whether it's actually needed or not.

Problem is ethtool interface doesn't have a 'default' kind
of option, and user would see the interface WoL as disabled,
which doesn't accurately reflect the actual configuration.
More-so, if the user actually wants to explicitly disable WoL he'd have
to first enable it [otherwise ethtool would block the command].

Instead of allowing management to make the decision, enable WoL by
default on all devices capable of it.

Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qede/qede_main.c

index 38b77bbfe4eeac8cb67cbbef40d8d9eec59168ec..4a460525b1e5f20f0e7845f194d2bea77ccff6ef 100644 (file)
@@ -618,6 +618,12 @@ static struct qede_dev *qede_alloc_etherdev(struct qed_dev *cdev,
        memset(&edev->stats, 0, sizeof(edev->stats));
        memcpy(&edev->dev_info, info, sizeof(*info));
 
+       /* As ethtool doesn't have the ability to show WoL behavior as
+        * 'default', if device supports it declare it's enabled.
+        */
+       if (edev->dev_info.common.wol_support)
+               edev->wol_enabled = true;
+
        INIT_LIST_HEAD(&edev->vlan_list);
 
        return edev;