Commit ee710bbc authored by David S. Miller's avatar David S. Miller

Merge branch 'bcmasp-fixes'

Justin Chen says:

====================
net: bcmasp: bug fixes for bcmasp

Fix two bugs.

- Indicate that PM is managed by mac to prevent double pm calls. This
  doesn't lead to a crash, but waste a noticable amount of time
  suspending/resuming.

- Sanity check for OOB write was off by one. Leading to a false error
  when using the full array.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 398b7c37 f120e62e
...@@ -535,9 +535,6 @@ int bcmasp_netfilt_get_all_active(struct bcmasp_intf *intf, u32 *rule_locs, ...@@ -535,9 +535,6 @@ int bcmasp_netfilt_get_all_active(struct bcmasp_intf *intf, u32 *rule_locs,
int j = 0, i; int j = 0, i;
for (i = 0; i < NUM_NET_FILTERS; i++) { for (i = 0; i < NUM_NET_FILTERS; i++) {
if (j == *rule_cnt)
return -EMSGSIZE;
if (!priv->net_filters[i].claimed || if (!priv->net_filters[i].claimed ||
priv->net_filters[i].port != intf->port) priv->net_filters[i].port != intf->port)
continue; continue;
...@@ -547,6 +544,9 @@ int bcmasp_netfilt_get_all_active(struct bcmasp_intf *intf, u32 *rule_locs, ...@@ -547,6 +544,9 @@ int bcmasp_netfilt_get_all_active(struct bcmasp_intf *intf, u32 *rule_locs,
priv->net_filters[i - 1].wake_filter) priv->net_filters[i - 1].wake_filter)
continue; continue;
if (j == *rule_cnt)
return -EMSGSIZE;
rule_locs[j++] = priv->net_filters[i].fs.location; rule_locs[j++] = priv->net_filters[i].fs.location;
} }
......
...@@ -1050,6 +1050,9 @@ static int bcmasp_netif_init(struct net_device *dev, bool phy_connect) ...@@ -1050,6 +1050,9 @@ static int bcmasp_netif_init(struct net_device *dev, bool phy_connect)
netdev_err(dev, "could not attach to PHY\n"); netdev_err(dev, "could not attach to PHY\n");
goto err_phy_disable; goto err_phy_disable;
} }
/* Indicate that the MAC is responsible for PHY PM */
phydev->mac_managed_pm = true;
} else if (!intf->wolopts) { } else if (!intf->wolopts) {
ret = phy_resume(dev->phydev); ret = phy_resume(dev->phydev);
if (ret) if (ret)
......
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