aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000e
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2009-11-20 18:22:01 -0500
committerDavid S. Miller <davem@davemloft.net>2009-11-21 14:33:42 -0500
commit1fbfca3211ce50d992d66bcda71fc47bf5e268c9 (patch)
tree43cf6dc5a2854a878fba9a4438add33253967d3a /drivers/net/e1000e
parente994b7c901ded7200b525a707c6da71f2cf6d4bb (diff)
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: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/e1000e')
-rw-r--r--drivers/net/e1000e/ethtool.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c
index c430dc8b70a3..3af5ee4a4cc8 100644
--- a/drivers/net/e1000e/ethtool.c
+++ b/drivers/net/e1000e/ethtool.c
@@ -1777,12 +1777,11 @@ static int e1000_set_wol(struct net_device *netdev,
1777{ 1777{
1778 struct e1000_adapter *adapter = netdev_priv(netdev); 1778 struct e1000_adapter *adapter = netdev_priv(netdev);
1779 1779
1780 if (wol->wolopts & WAKE_MAGICSECURE)
1781 return -EOPNOTSUPP;
1782
1783 if (!(adapter->flags & FLAG_HAS_WOL) || 1780 if (!(adapter->flags & FLAG_HAS_WOL) ||
1784 !device_can_wakeup(&adapter->pdev->dev)) 1781 !device_can_wakeup(&adapter->pdev->dev) ||
1785 return wol->wolopts ? -EOPNOTSUPP : 0; 1782 (wol->wolopts & ~(WAKE_UCAST | WAKE_MCAST | WAKE_BCAST |
1783 WAKE_MAGIC | WAKE_PHY | WAKE_ARP)))
1784 return -EOPNOTSUPP;
1786 1785
1787 /* these settings will always override what we currently have */ 1786 /* these settings will always override what we currently have */
1788 adapter->wol = 0; 1787 adapter->wol = 0;