Skip to content

Commit

Permalink
PCMCIA-NETDEV : xirc2ps_cs: bugfix of multicast code
Browse files Browse the repository at this point in the history
Dear Jeff

Subject: [PATCH] xirc2ps_cs: bugfix of multicast code

Signed-off-by: Komuro <komurojun-mbn@nifty.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
  • Loading branch information
Komuro authored and Jeff Garzik committed May 8, 2007
1 parent 44a1d2e commit 0b45d18
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions drivers/net/pcmcia/xirc2ps_cs.c
Original file line number Diff line number Diff line change
Expand Up @@ -1420,7 +1420,7 @@ set_addresses(struct net_device *dev)
kio_addr_t ioaddr = dev->base_addr;
local_info_t *lp = netdev_priv(dev);
struct dev_mc_list *dmi = dev->mc_list;
char *addr;
unsigned char *addr;
int i,j,k,n;

SelectPage(k=0x50);
Expand All @@ -1429,17 +1429,19 @@ set_addresses(struct net_device *dev)
if (++n > 9)
break;
i = 0;
if (n > 1 && n <= dev->mc_count && dmi) {
dmi = dmi->next;
}
}
if (j > 15) {
j = 8;
k++;
SelectPage(k);
}

if (n && n <= dev->mc_count && dmi) {
if (n && n <= dev->mc_count && dmi)
addr = dmi->dmi_addr;
dmi = dmi->next;
} else
else
addr = dev->dev_addr;

if (lp->mohawk)
Expand All @@ -1465,10 +1467,10 @@ set_multicast_list(struct net_device *dev)
if (dev->flags & IFF_PROMISC) { /* snoop */
PutByte(XIRCREG42_SWC1, 0x06); /* set MPE and PME */
} else if (dev->mc_count > 9 || (dev->flags & IFF_ALLMULTI)) {
PutByte(XIRCREG42_SWC1, 0x06); /* set MPE */
PutByte(XIRCREG42_SWC1, 0x02); /* set MPE */
} else if (dev->mc_count) {
/* the chip can filter 9 addresses perfectly */
PutByte(XIRCREG42_SWC1, 0x00);
PutByte(XIRCREG42_SWC1, 0x01);
SelectPage(0x40);
PutByte(XIRCREG40_CMD0, Offline);
set_addresses(dev);
Expand Down

0 comments on commit 0b45d18

Please sign in to comment.