diff options
Diffstat (limited to 'drivers/net/sunbmac.c')
-rw-r--r-- | drivers/net/sunbmac.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/net/sunbmac.c b/drivers/net/sunbmac.c index 536cf7e06bfd..ed7865a0b5b2 100644 --- a/drivers/net/sunbmac.c +++ b/drivers/net/sunbmac.c | |||
@@ -11,7 +11,6 @@ | |||
11 | #include <linux/interrupt.h> | 11 | #include <linux/interrupt.h> |
12 | #include <linux/ioport.h> | 12 | #include <linux/ioport.h> |
13 | #include <linux/in.h> | 13 | #include <linux/in.h> |
14 | #include <linux/slab.h> | ||
15 | #include <linux/string.h> | 14 | #include <linux/string.h> |
16 | #include <linux/delay.h> | 15 | #include <linux/delay.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
@@ -25,6 +24,7 @@ | |||
25 | #include <linux/dma-mapping.h> | 24 | #include <linux/dma-mapping.h> |
26 | #include <linux/of.h> | 25 | #include <linux/of.h> |
27 | #include <linux/of_device.h> | 26 | #include <linux/of_device.h> |
27 | #include <linux/gfp.h> | ||
28 | 28 | ||
29 | #include <asm/auxio.h> | 29 | #include <asm/auxio.h> |
30 | #include <asm/byteorder.h> | 30 | #include <asm/byteorder.h> |
@@ -919,7 +919,7 @@ static int bigmac_open(struct net_device *dev) | |||
919 | struct bigmac *bp = netdev_priv(dev); | 919 | struct bigmac *bp = netdev_priv(dev); |
920 | int ret; | 920 | int ret; |
921 | 921 | ||
922 | ret = request_irq(dev->irq, &bigmac_interrupt, IRQF_SHARED, dev->name, bp); | 922 | ret = request_irq(dev->irq, bigmac_interrupt, IRQF_SHARED, dev->name, bp); |
923 | if (ret) { | 923 | if (ret) { |
924 | printk(KERN_ERR "BIGMAC: Can't order irq %d to go.\n", dev->irq); | 924 | printk(KERN_ERR "BIGMAC: Can't order irq %d to go.\n", dev->irq); |
925 | return ret; | 925 | return ret; |
@@ -999,7 +999,7 @@ static void bigmac_set_multicast(struct net_device *dev) | |||
999 | { | 999 | { |
1000 | struct bigmac *bp = netdev_priv(dev); | 1000 | struct bigmac *bp = netdev_priv(dev); |
1001 | void __iomem *bregs = bp->bregs; | 1001 | void __iomem *bregs = bp->bregs; |
1002 | struct dev_mc_list *dmi = dev->mc_list; | 1002 | struct dev_mc_list *dmi; |
1003 | char *addrs; | 1003 | char *addrs; |
1004 | int i; | 1004 | int i; |
1005 | u32 tmp, crc; | 1005 | u32 tmp, crc; |
@@ -1013,7 +1013,7 @@ static void bigmac_set_multicast(struct net_device *dev) | |||
1013 | while ((sbus_readl(bregs + BMAC_RXCFG) & BIGMAC_RXCFG_ENABLE) != 0) | 1013 | while ((sbus_readl(bregs + BMAC_RXCFG) & BIGMAC_RXCFG_ENABLE) != 0) |
1014 | udelay(20); | 1014 | udelay(20); |
1015 | 1015 | ||
1016 | if ((dev->flags & IFF_ALLMULTI) || (dev->mc_count > 64)) { | 1016 | if ((dev->flags & IFF_ALLMULTI) || (netdev_mc_count(dev) > 64)) { |
1017 | sbus_writel(0xffff, bregs + BMAC_HTABLE0); | 1017 | sbus_writel(0xffff, bregs + BMAC_HTABLE0); |
1018 | sbus_writel(0xffff, bregs + BMAC_HTABLE1); | 1018 | sbus_writel(0xffff, bregs + BMAC_HTABLE1); |
1019 | sbus_writel(0xffff, bregs + BMAC_HTABLE2); | 1019 | sbus_writel(0xffff, bregs + BMAC_HTABLE2); |
@@ -1028,9 +1028,8 @@ static void bigmac_set_multicast(struct net_device *dev) | |||
1028 | for (i = 0; i < 4; i++) | 1028 | for (i = 0; i < 4; i++) |
1029 | hash_table[i] = 0; | 1029 | hash_table[i] = 0; |
1030 | 1030 | ||
1031 | for (i = 0; i < dev->mc_count; i++) { | 1031 | netdev_for_each_mc_addr(dmi, dev) { |
1032 | addrs = dmi->dmi_addr; | 1032 | addrs = dmi->dmi_addr; |
1033 | dmi = dmi->next; | ||
1034 | 1033 | ||
1035 | if (!(*addrs & 1)) | 1034 | if (!(*addrs & 1)) |
1036 | continue; | 1035 | continue; |