|
@@ -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))
|
|
|
|
- return wol->wolopts ? -EOPNOTSUPP : 0;
|
|
|
|
|
|
+ !device_can_wakeup(&adapter->pdev->dev) ||
|
|
|
|
+ (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;
|