diff options
author | David S. Miller <davem@davemloft.net> | 2010-04-14 05:01:33 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-14 05:01:33 -0700 |
commit | dad1e54b121d93ed47690d77736af63d3f11d657 (patch) | |
tree | 36fdd29537e43bbb4f36252e010a591ae6fe20bc /drivers/net/pcmcia | |
parent | 1253332f75f3774cc84d0b7693152656848901f9 (diff) | |
parent | 0110d6f22f392f976e84ab49da1b42f85b64a3c5 (diff) | |
download | linux-dad1e54b121d93ed47690d77736af63d3f11d657.tar.bz2 |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/pcmcia/smc91c92_cs.c
drivers/net/virtio_net.c
Diffstat (limited to 'drivers/net/pcmcia')
-rw-r--r-- | drivers/net/pcmcia/smc91c92_cs.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c index ad2267646187..408f3d7b1545 100644 --- a/drivers/net/pcmcia/smc91c92_cs.c +++ b/drivers/net/pcmcia/smc91c92_cs.c @@ -1608,9 +1608,12 @@ static void set_rx_mode(struct net_device *dev) { unsigned int ioaddr = dev->base_addr; struct smc_private *smc = netdev_priv(dev); - u_int multicast_table[ 2 ] = { 0, }; + unsigned char multicast_table[8]; unsigned long flags; u_short rx_cfg_setting; + int i; + + memset(multicast_table, 0, sizeof(multicast_table)); if (dev->flags & IFF_PROMISC) { rx_cfg_setting = RxStripCRC | RxEnable | RxPromisc | RxAllMulti; @@ -1622,10 +1625,6 @@ static void set_rx_mode(struct net_device *dev) netdev_for_each_mc_addr(ha, dev) { u_int position = ether_crc(6, ha->addr); -#ifndef final_version /* Verify multicast address. */ - if ((ha->addr[0] & 1) == 0) - continue; -#endif multicast_table[position >> 29] |= 1 << ((position >> 26) & 7); } } @@ -1635,8 +1634,8 @@ static void set_rx_mode(struct net_device *dev) /* Load MC table and Rx setting into the chip without interrupts. */ spin_lock_irqsave(&smc->lock, flags); SMC_SELECT_BANK(3); - outl(multicast_table[0], ioaddr + MULTICAST0); - outl(multicast_table[1], ioaddr + MULTICAST4); + for (i = 0; i < 8; i++) + outb(multicast_table[i], ioaddr + MULTICAST0 + i); SMC_SELECT_BANK(0); outw(rx_cfg_setting, ioaddr + RCR); SMC_SELECT_BANK(2); |