aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/3c527.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/3c527.c')
-rw-r--r--drivers/net/3c527.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/3c527.c b/drivers/net/3c527.c
index 36c4191e7bca..ce9826980517 100644
--- a/drivers/net/3c527.c
+++ b/drivers/net/3c527.c
@@ -1526,10 +1526,10 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry)
1526 1526
1527 if ((dev->flags&IFF_PROMISC) || 1527 if ((dev->flags&IFF_PROMISC) ||
1528 (dev->flags&IFF_ALLMULTI) || 1528 (dev->flags&IFF_ALLMULTI) ||
1529 dev->mc_count > 10) 1529 netdev_mc_count(dev) > 10)
1530 /* Enable promiscuous mode */ 1530 /* Enable promiscuous mode */
1531 filt |= 1; 1531 filt |= 1;
1532 else if(dev->mc_count) 1532 else if (!netdev_mc_empty(dev))
1533 { 1533 {
1534 unsigned char block[62]; 1534 unsigned char block[62];
1535 unsigned char *bp; 1535 unsigned char *bp;
@@ -1542,16 +1542,17 @@ static void do_mc32_set_multicast_list(struct net_device *dev, int retry)
1542 if(!lp->mc_list_valid) 1542 if(!lp->mc_list_valid)
1543 { 1543 {
1544 block[1]=0; 1544 block[1]=0;
1545 block[0]=dev->mc_count; 1545 block[0]=netdev_mc_count(dev);
1546 bp=block+2; 1546 bp=block+2;
1547 1547
1548 for(i=0;i<dev->mc_count;i++) 1548 for(i=0;i<netdev_mc_count(dev);i++)
1549 { 1549 {
1550 memcpy(bp, dmc->dmi_addr, 6); 1550 memcpy(bp, dmc->dmi_addr, 6);
1551 bp+=6; 1551 bp+=6;
1552 dmc=dmc->next; 1552 dmc=dmc->next;
1553 } 1553 }
1554 if(mc32_command_nowait(dev, 2, block, 2+6*dev->mc_count)==-1) 1554 if(mc32_command_nowait(dev, 2, block,
1555 2+6*netdev_mc_count(dev))==-1)
1555 { 1556 {
1556 lp->mc_reload_wait = 1; 1557 lp->mc_reload_wait = 1;
1557 return; 1558 return;