diff options
Diffstat (limited to 'drivers/net/ibm_newemac/core.c')
| -rw-r--r-- | drivers/net/ibm_newemac/core.c | 13 |
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 | ||
