From: Klement Fish Date: Thu, 28 Jul 2011 06:03:22 +0000 (+0000) Subject: sis190: Rx filter init is needed for MAC address change. X-Git-Tag: firefly_0821_release~7541^2~2966 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=04124c684acdab48c4d990235d5f16343e55d088;p=firefly-linux-kernel-4.4.55.git sis190: Rx filter init is needed for MAC address change. [ Upstream commit fe66101f14813b77d84f6450d51772a2af2b81a1 ] Addresses https://bugzilla.kernel.org/show_bug.cgi?id=34552 Signed-off-by: Klement Fish Acked-by: Francois Romieu Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c index b436e007eea0..f6d26ab30e82 100644 --- a/drivers/net/sis190.c +++ b/drivers/net/sis190.c @@ -1824,6 +1824,16 @@ static int sis190_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) generic_mii_ioctl(&tp->mii_if, if_mii(ifr), cmd, NULL); } +static int sis190_mac_addr(struct net_device *dev, void *p) +{ + int rc; + + rc = eth_mac_addr(dev, p); + if (!rc) + sis190_init_rxfilter(dev); + return rc; +} + static const struct net_device_ops sis190_netdev_ops = { .ndo_open = sis190_open, .ndo_stop = sis190_close, @@ -1832,7 +1842,7 @@ static const struct net_device_ops sis190_netdev_ops = { .ndo_tx_timeout = sis190_tx_timeout, .ndo_set_multicast_list = sis190_set_rx_mode, .ndo_change_mtu = eth_change_mtu, - .ndo_set_mac_address = eth_mac_addr, + .ndo_set_mac_address = sis190_mac_addr, .ndo_validate_addr = eth_validate_addr, #ifdef CONFIG_NET_POLL_CONTROLLER .ndo_poll_controller = sis190_netpoll,