diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /drivers/net/lp486e.c | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (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.c | 18 |
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; |