Commit dcf96f1f authored by Ajit Khaparde's avatar Ajit Khaparde Committed by David S. Miller

be2net: restrict WOL to PFs only.

WOL is not supported for Vrtual Functions.
Signed-off-by: default avatarAjit Khaparde <ajit.khaparde@emulex.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9b037f38
...@@ -516,12 +516,23 @@ be_phys_id(struct net_device *netdev, u32 data) ...@@ -516,12 +516,23 @@ be_phys_id(struct net_device *netdev, u32 data)
return status; return status;
} }
static bool
be_is_wol_supported(struct be_adapter *adapter)
{
if (!be_physfn(adapter))
return false;
else
return true;
}
static void static void
be_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) be_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
{ {
struct be_adapter *adapter = netdev_priv(netdev); struct be_adapter *adapter = netdev_priv(netdev);
if (be_is_wol_supported(adapter))
wol->supported = WAKE_MAGIC; wol->supported = WAKE_MAGIC;
if (adapter->wol) if (adapter->wol)
wol->wolopts = WAKE_MAGIC; wol->wolopts = WAKE_MAGIC;
else else
...@@ -537,7 +548,7 @@ be_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) ...@@ -537,7 +548,7 @@ be_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
if (wol->wolopts & ~WAKE_MAGIC) if (wol->wolopts & ~WAKE_MAGIC)
return -EINVAL; return -EINVAL;
if (wol->wolopts & WAKE_MAGIC) if ((wol->wolopts & WAKE_MAGIC) && be_is_wol_supported(adapter))
adapter->wol = true; adapter->wol = true;
else else
adapter->wol = false; adapter->wol = false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment