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>
This commit is contained in:
parent
e994b7c901
commit
1fbfca3211
1 changed files with 4 additions and 5 deletions
|
@ -1777,12 +1777,11 @@ static int e1000_set_wol(struct net_device *netdev,
|
|||
{
|
||||
struct e1000_adapter *adapter = netdev_priv(netdev);
|
||||
|
||||
if (wol->wolopts & WAKE_MAGICSECURE)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
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 */
|
||||
adapter->wol = 0;
|
||||
|
|
Loading…
Reference in a new issue