Commit 1fbfca32 authored by Bruce Allan's avatar Bruce Allan Committed by David S. Miller
Browse files

e1000e: check WoL mode is among set of supported modes



When setting WoL feature, check the supplied modes are all supported rather
than checking for no support.  This way, if any new modes are added the
driver does not default to not complaining about it if we don't really
support it.

Signed-off-by: default avatarBruce Allan <bruce.w.allan@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e994b7c9
Loading
Loading
Loading
Loading
+4 −5
Original line number Original line Diff line number Diff line
@@ -1777,12 +1777,11 @@ static int e1000_set_wol(struct net_device *netdev,
{
{
	struct e1000_adapter *adapter = netdev_priv(netdev);
	struct e1000_adapter *adapter = netdev_priv(netdev);


	if (wol->wolopts & WAKE_MAGICSECURE)
		return -EOPNOTSUPP;

	if (!(adapter->flags & FLAG_HAS_WOL) ||
	if (!(adapter->flags & FLAG_HAS_WOL) ||
	    !device_can_wakeup(&adapter->pdev->dev))
	    !device_can_wakeup(&adapter->pdev->dev) ||
		return wol->wolopts ? -EOPNOTSUPP : 0;
	    (wol->wolopts & ~(WAKE_UCAST | WAKE_MCAST | WAKE_BCAST |
	                      WAKE_MAGIC | WAKE_PHY | WAKE_ARP)))
		return -EOPNOTSUPP;


	/* these settings will always override what we currently have */
	/* these settings will always override what we currently have */
	adapter->wol = 0;
	adapter->wol = 0;