diff options
author | David S. Miller <davem@davemloft.net> | 2009-10-13 12:55:20 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-10-13 12:55:20 -0700 |
commit | 421355de876b9f3fcc7e4cb6026e416fb12a5068 (patch) | |
tree | fb814456af86c75e1eb9e330994dda461fc5b4f7 /drivers/net/pcmcia/3c574_cs.c | |
parent | aace495933a981274b6491d71b915165a61defdc (diff) | |
parent | 0fe7463a35aadfaf22d1ca58325ab3851b8d757c (diff) | |
download | op-kernel-dev-421355de876b9f3fcc7e4cb6026e416fb12a5068.zip op-kernel-dev-421355de876b9f3fcc7e4cb6026e416fb12a5068.tar.gz |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'drivers/net/pcmcia/3c574_cs.c')
-rw-r--r-- | drivers/net/pcmcia/3c574_cs.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c index ee8ad3e..b58965a 100644 --- a/drivers/net/pcmcia/3c574_cs.c +++ b/drivers/net/pcmcia/3c574_cs.c @@ -251,6 +251,7 @@ static void el3_tx_timeout(struct net_device *dev); static int el3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); static const struct ethtool_ops netdev_ethtool_ops; static void set_rx_mode(struct net_device *dev); +static void set_multicast_list(struct net_device *dev); static void tc574_detach(struct pcmcia_device *p_dev); @@ -266,7 +267,7 @@ static const struct net_device_ops el3_netdev_ops = { .ndo_tx_timeout = el3_tx_timeout, .ndo_get_stats = el3_get_stats, .ndo_do_ioctl = el3_ioctl, - .ndo_set_multicast_list = set_rx_mode, + .ndo_set_multicast_list = set_multicast_list, .ndo_change_mtu = eth_change_mtu, .ndo_set_mac_address = eth_mac_addr, .ndo_validate_addr = eth_validate_addr, @@ -1161,6 +1162,16 @@ static void set_rx_mode(struct net_device *dev) outw(SetRxFilter | RxStation | RxBroadcast, ioaddr + EL3_CMD); } +static void set_multicast_list(struct net_device *dev) +{ + struct el3_private *lp = netdev_priv(dev); + unsigned long flags; + + spin_lock_irqsave(&lp->window_lock, flags); + set_rx_mode(dev); + spin_unlock_irqrestore(&lp->window_lock, flags); +} + static int el3_close(struct net_device *dev) { unsigned int ioaddr = dev->base_addr; |