aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sky2.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/sky2.c')
-rw-r--r--drivers/net/sky2.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index e6d937ec6886..5d812de65d90 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -149,6 +149,8 @@ static const char *yukon2_name[] = {
149 "FE", /* 0xb7 */ 149 "FE", /* 0xb7 */
150}; 150};
151 151
152static void sky2_set_multicast(struct net_device *dev);
153
152/* Access to external PHY */ 154/* Access to external PHY */
153static int gm_phy_write(struct sky2_hw *hw, unsigned port, u16 reg, u16 val) 155static int gm_phy_write(struct sky2_hw *hw, unsigned port, u16 reg, u16 val)
154{ 156{
@@ -2900,8 +2902,10 @@ static int sky2_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
2900 sky2->autoneg = ecmd->autoneg; 2902 sky2->autoneg = ecmd->autoneg;
2901 sky2->advertising = ecmd->advertising; 2903 sky2->advertising = ecmd->advertising;
2902 2904
2903 if (netif_running(dev)) 2905 if (netif_running(dev)) {
2904 sky2_phy_reinit(sky2); 2906 sky2_phy_reinit(sky2);
2907 sky2_set_multicast(dev);
2908 }
2905 2909
2906 return 0; 2910 return 0;
2907} 2911}
@@ -2994,6 +2998,7 @@ static int sky2_nway_reset(struct net_device *dev)
2994 return -EINVAL; 2998 return -EINVAL;
2995 2999
2996 sky2_phy_reinit(sky2); 3000 sky2_phy_reinit(sky2);
3001 sky2_set_multicast(dev);
2997 3002
2998 return 0; 3003 return 0;
2999} 3004}
@@ -4171,6 +4176,8 @@ static int sky2_resume(struct pci_dev *pdev)
4171 dev_close(dev); 4176 dev_close(dev);
4172 goto out; 4177 goto out;
4173 } 4178 }
4179
4180 sky2_set_multicast(dev);
4174 } 4181 }
4175 } 4182 }
4176 4183