aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sun3_82586.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/sun3_82586.c')
-rw-r--r--drivers/net/sun3_82586.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/sun3_82586.c b/drivers/net/sun3_82586.c
index 2f1eaaf7a727..8b28c89a9a77 100644
--- a/drivers/net/sun3_82586.c
+++ b/drivers/net/sun3_82586.c
@@ -33,7 +33,6 @@ static int fifo=0x8; /* don't change */
33#include <linux/string.h> 33#include <linux/string.h>
34#include <linux/errno.h> 34#include <linux/errno.h>
35#include <linux/ioport.h> 35#include <linux/ioport.h>
36#include <linux/slab.h>
37#include <linux/interrupt.h> 36#include <linux/interrupt.h>
38#include <linux/delay.h> 37#include <linux/delay.h>
39#include <linux/init.h> 38#include <linux/init.h>
@@ -191,7 +190,7 @@ static int sun3_82586_open(struct net_device *dev)
191 startrecv586(dev); 190 startrecv586(dev);
192 sun3_enaint(); 191 sun3_enaint();
193 192
194 ret = request_irq(dev->irq, &sun3_82586_interrupt,0,dev->name,dev); 193 ret = request_irq(dev->irq, sun3_82586_interrupt,0,dev->name,dev);
195 if (ret) 194 if (ret)
196 { 195 {
197 sun3_reset586(); 196 sun3_reset586();
@@ -413,8 +412,8 @@ static int init586(struct net_device *dev)
413 volatile struct iasetup_cmd_struct *ias_cmd; 412 volatile struct iasetup_cmd_struct *ias_cmd;
414 volatile struct tdr_cmd_struct *tdr_cmd; 413 volatile struct tdr_cmd_struct *tdr_cmd;
415 volatile struct mcsetup_cmd_struct *mc_cmd; 414 volatile struct mcsetup_cmd_struct *mc_cmd;
416 struct dev_mc_list *dmi=dev->mc_list; 415 struct dev_mc_list *dmi;
417 int num_addrs=dev->mc_count; 416 int num_addrs=netdev_mc_count(dev);
418 417
419 ptr = (void *) ((char *)p->scb + sizeof(struct scb_struct)); 418 ptr = (void *) ((char *)p->scb + sizeof(struct scb_struct));
420 419
@@ -536,8 +535,10 @@ static int init586(struct net_device *dev)
536 mc_cmd->cmd_link = 0xffff; 535 mc_cmd->cmd_link = 0xffff;
537 mc_cmd->mc_cnt = swab16(num_addrs * 6); 536 mc_cmd->mc_cnt = swab16(num_addrs * 6);
538 537
539 for(i=0;i<num_addrs;i++,dmi=dmi->next) 538 i = 0;
540 memcpy((char *) mc_cmd->mc_list[i], dmi->dmi_addr,6); 539 netdev_for_each_mc_addr(dmi, dev)
540 memcpy((char *) mc_cmd->mc_list[i++],
541 dmi->dmi_addr, ETH_ALEN);
541 542
542 p->scb->cbl_offset = make16(mc_cmd); 543 p->scb->cbl_offset = make16(mc_cmd);
543 p->scb->cmd_cuc = CUC_START; 544 p->scb->cmd_cuc = CUC_START;