aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/lp486e.c
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
commitada47b5fe13d89735805b566185f4885f5a3f750 (patch)
tree644b88f8a71896307d71438e9b3af49126ffb22b /drivers/net/lp486e.c
parent43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff)
parent3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff)
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/net/lp486e.c')
-rw-r--r--drivers/net/lp486e.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/net/lp486e.c b/drivers/net/lp486e.c
index cc3ed9cf28be..3e3cc04defd0 100644
--- a/drivers/net/lp486e.c
+++ b/drivers/net/lp486e.c
@@ -845,7 +845,7 @@ static int i596_open(struct net_device *dev)
845{ 845{
846 int i; 846 int i;
847 847
848 i = request_irq(dev->irq, &i596_interrupt, IRQF_SHARED, dev->name, dev); 848 i = request_irq(dev->irq, i596_interrupt, IRQF_SHARED, dev->name, dev);
849 if (i) { 849 if (i) {
850 printk(KERN_ERR "%s: IRQ %d not free\n", dev->name, dev->irq); 850 printk(KERN_ERR "%s: IRQ %d not free\n", dev->name, dev->irq);
851 return i; 851 return i;
@@ -1253,21 +1253,22 @@ static void set_multicast_list(struct net_device *dev) {
1253 1253
1254 if (i596_debug > 1) 1254 if (i596_debug > 1)
1255 printk ("%s: set multicast list %d\n", 1255 printk ("%s: set multicast list %d\n",
1256 dev->name, dev->mc_count); 1256 dev->name, netdev_mc_count(dev));
1257 1257
1258 if (dev->mc_count > 0) { 1258 if (!netdev_mc_empty(dev)) {
1259 struct dev_mc_list *dmi; 1259 struct dev_mc_list *dmi;
1260 char *cp; 1260 char *cp;
1261 cmd = kmalloc(sizeof(struct i596_cmd)+2+dev->mc_count*6, GFP_ATOMIC); 1261 cmd = kmalloc(sizeof(struct i596_cmd) + 2 +
1262 netdev_mc_count(dev) * 6, GFP_ATOMIC);
1262 if (cmd == NULL) { 1263 if (cmd == NULL) {
1263 printk (KERN_ERR "%s: set_multicast Memory squeeze.\n", dev->name); 1264 printk (KERN_ERR "%s: set_multicast Memory squeeze.\n", dev->name);
1264 return; 1265 return;
1265 } 1266 }
1266 cmd->command = CmdMulticastList; 1267 cmd->command = CmdMulticastList;
1267 *((unsigned short *) (cmd + 1)) = dev->mc_count * 6; 1268 *((unsigned short *) (cmd + 1)) = netdev_mc_count(dev) * 6;
1268 cp = ((char *)(cmd + 1))+2; 1269 cp = ((char *)(cmd + 1))+2;
1269 for (dmi = dev->mc_list; dmi != NULL; dmi = dmi->next) { 1270 netdev_for_each_mc_addr(dmi, dev) {
1270 memcpy(cp, dmi,6); 1271 memcpy(cp, dmi->dmi_addr, 6);
1271 cp += 6; 1272 cp += 6;
1272 } 1273 }
1273 if (i596_debug & LOG_SRCDST) 1274 if (i596_debug & LOG_SRCDST)
@@ -1277,7 +1278,8 @@ static void set_multicast_list(struct net_device *dev) {
1277 if (lp->set_conf.pa_next != I596_NULL) { 1278 if (lp->set_conf.pa_next != I596_NULL) {
1278 return; 1279 return;
1279 } 1280 }
1280 if (dev->mc_count == 0 && !(dev->flags & (IFF_PROMISC | IFF_ALLMULTI))) { 1281 if (netdev_mc_empty(dev) &&
1282 !(dev->flags & (IFF_PROMISC | IFF_ALLMULTI))) {
1281 lp->i596_config[8] &= ~0x01; 1283 lp->i596_config[8] &= ~0x01;
1282 } else { 1284 } else {
1283 lp->i596_config[8] |= 0x01; 1285 lp->i596_config[8] |= 0x01;