aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ibm_newemac/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ibm_newemac/core.c')
-rw-r--r--drivers/net/ibm_newemac/core.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c
index fb0ac6d7c040..2484e9e6c1ed 100644
--- a/drivers/net/ibm_newemac/core.c
+++ b/drivers/net/ibm_newemac/core.c
@@ -39,6 +39,7 @@
39#include <linux/bitops.h> 39#include <linux/bitops.h>
40#include <linux/workqueue.h> 40#include <linux/workqueue.h>
41#include <linux/of.h> 41#include <linux/of.h>
42#include <linux/slab.h>
42 43
43#include <asm/processor.h> 44#include <asm/processor.h>
44#include <asm/io.h> 45#include <asm/io.h>
@@ -388,18 +389,19 @@ static void emac_hash_mc(struct emac_instance *dev)
388 const int regs = EMAC_XAHT_REGS(dev); 389 const int regs = EMAC_XAHT_REGS(dev);
389 u32 *gaht_base = emac_gaht_base(dev); 390 u32 *gaht_base = emac_gaht_base(dev);
390 u32 gaht_temp[regs]; 391 u32 gaht_temp[regs];
391 struct dev_mc_list *dmi; 392 struct netdev_hw_addr *ha;
392 int i; 393 int i;
393 394
394 DBG(dev, "hash_mc %d" NL, netdev_mc_count(dev->ndev)); 395 DBG(dev, "hash_mc %d" NL, netdev_mc_count(dev->ndev));
395 396
396 memset(gaht_temp, 0, sizeof (gaht_temp)); 397 memset(gaht_temp, 0, sizeof (gaht_temp));
397 398
398 netdev_for_each_mc_addr(dmi, dev->ndev) { 399 netdev_for_each_mc_addr(ha, dev->ndev) {
399 int slot, reg, mask; 400 int slot, reg, mask;
400 DBG2(dev, "mc %pM" NL, dmi->dmi_addr); 401 DBG2(dev, "mc %pM" NL, ha->addr);
401 402
402 slot = EMAC_XAHT_CRC_TO_SLOT(dev, ether_crc(ETH_ALEN, dmi->dmi_addr)); 403 slot = EMAC_XAHT_CRC_TO_SLOT(dev,
404 ether_crc(ETH_ALEN, ha->addr));
403 reg = EMAC_XAHT_SLOT_TO_REG(dev, slot); 405 reg = EMAC_XAHT_SLOT_TO_REG(dev, slot);
404 mask = EMAC_XAHT_SLOT_TO_MASK(dev, slot); 406 mask = EMAC_XAHT_SLOT_TO_MASK(dev, slot);
405 407
@@ -1176,7 +1178,7 @@ static int emac_open(struct net_device *ndev)
1176 netif_carrier_on(dev->ndev); 1178 netif_carrier_on(dev->ndev);
1177 1179
1178 /* Required for Pause packet support in EMAC */ 1180 /* Required for Pause packet support in EMAC */
1179 dev_mc_add(ndev, default_mcast_addr, sizeof(default_mcast_addr), 1); 1181 dev_mc_add_global(ndev, default_mcast_addr);
1180 1182
1181 emac_configure(dev); 1183 emac_configure(dev);
1182 mal_poll_add(dev->mal, &dev->commac); 1184 mal_poll_add(dev->mal, &dev->commac);
@@ -1699,7 +1701,6 @@ static int emac_poll_rx(void *param, int budget)
1699 1701
1700 skb_put(skb, len); 1702 skb_put(skb, len);
1701 push_packet: 1703 push_packet:
1702 skb->dev = dev->ndev;
1703 skb->protocol = eth_type_trans(skb, dev->ndev); 1704 skb->protocol = eth_type_trans(skb, dev->ndev);
1704 emac_rx_csum(dev, skb, ctrl); 1705 emac_rx_csum(dev, skb, ctrl);
1705 1706