diff options
| author | Patrick McHardy <kaber@trash.net> | 2010-04-20 10:02:01 -0400 |
|---|---|---|
| committer | Patrick McHardy <kaber@trash.net> | 2010-04-20 10:02:01 -0400 |
| commit | 62910554656cdcd6b6f84a5154c4155aae4ca231 (patch) | |
| tree | dcf14004f6fd2ef7154362ff948bfeba0f3ea92d /drivers/net/bcm63xx_enet.c | |
| parent | 22265a5c3c103cf8c50be62e6c90d045eb649e6d (diff) | |
| parent | ab9304717f7624c41927f442e6b6d418b2d8b3e4 (diff) | |
Merge branch 'master' of /repos/git/net-next-2.6
Conflicts:
Documentation/feature-removal-schedule.txt
net/ipv6/netfilter/ip6t_REJECT.c
net/netfilter/xt_limit.c
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'drivers/net/bcm63xx_enet.c')
| -rw-r--r-- | drivers/net/bcm63xx_enet.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/bcm63xx_enet.c b/drivers/net/bcm63xx_enet.c index 8cdcab7655c0..9a8bdea4a8ec 100644 --- a/drivers/net/bcm63xx_enet.c +++ b/drivers/net/bcm63xx_enet.c | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
| 22 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
| 23 | #include <linux/etherdevice.h> | 23 | #include <linux/etherdevice.h> |
| 24 | #include <linux/slab.h> | ||
| 24 | #include <linux/delay.h> | 25 | #include <linux/delay.h> |
| 25 | #include <linux/ethtool.h> | 26 | #include <linux/ethtool.h> |
| 26 | #include <linux/crc32.h> | 27 | #include <linux/crc32.h> |
| @@ -340,11 +341,9 @@ static int bcm_enet_receive_queue(struct net_device *dev, int budget) | |||
| 340 | } | 341 | } |
| 341 | 342 | ||
| 342 | skb_put(skb, len); | 343 | skb_put(skb, len); |
| 343 | skb->dev = dev; | ||
| 344 | skb->protocol = eth_type_trans(skb, dev); | 344 | skb->protocol = eth_type_trans(skb, dev); |
| 345 | priv->stats.rx_packets++; | 345 | priv->stats.rx_packets++; |
| 346 | priv->stats.rx_bytes += len; | 346 | priv->stats.rx_bytes += len; |
| 347 | dev->last_rx = jiffies; | ||
| 348 | netif_receive_skb(skb); | 347 | netif_receive_skb(skb); |
| 349 | 348 | ||
| 350 | } while (--budget > 0); | 349 | } while (--budget > 0); |
| @@ -604,7 +603,7 @@ static int bcm_enet_set_mac_address(struct net_device *dev, void *p) | |||
| 604 | static void bcm_enet_set_multicast_list(struct net_device *dev) | 603 | static void bcm_enet_set_multicast_list(struct net_device *dev) |
| 605 | { | 604 | { |
| 606 | struct bcm_enet_priv *priv; | 605 | struct bcm_enet_priv *priv; |
| 607 | struct dev_mc_list *mc_list; | 606 | struct netdev_hw_addr *ha; |
| 608 | u32 val; | 607 | u32 val; |
| 609 | int i; | 608 | int i; |
| 610 | 609 | ||
| @@ -632,14 +631,14 @@ static void bcm_enet_set_multicast_list(struct net_device *dev) | |||
| 632 | } | 631 | } |
| 633 | 632 | ||
| 634 | i = 0; | 633 | i = 0; |
| 635 | netdev_for_each_mc_addr(mc_list, dev) { | 634 | netdev_for_each_mc_addr(ha, dev) { |
| 636 | u8 *dmi_addr; | 635 | u8 *dmi_addr; |
| 637 | u32 tmp; | 636 | u32 tmp; |
| 638 | 637 | ||
| 639 | if (i == 3) | 638 | if (i == 3) |
| 640 | break; | 639 | break; |
| 641 | /* update perfect match registers */ | 640 | /* update perfect match registers */ |
| 642 | dmi_addr = mc_list->dmi_addr; | 641 | dmi_addr = ha->addr; |
| 643 | tmp = (dmi_addr[2] << 24) | (dmi_addr[3] << 16) | | 642 | tmp = (dmi_addr[2] << 24) | (dmi_addr[3] << 16) | |
| 644 | (dmi_addr[4] << 8) | dmi_addr[5]; | 643 | (dmi_addr[4] << 8) | dmi_addr[5]; |
| 645 | enet_writel(priv, tmp, ENET_PML_REG(i + 1)); | 644 | enet_writel(priv, tmp, ENET_PML_REG(i + 1)); |
| @@ -959,7 +958,9 @@ static int bcm_enet_open(struct net_device *dev) | |||
| 959 | /* all set, enable mac and interrupts, start dma engine and | 958 | /* all set, enable mac and interrupts, start dma engine and |
| 960 | * kick rx dma channel */ | 959 | * kick rx dma channel */ |
| 961 | wmb(); | 960 | wmb(); |
| 962 | enet_writel(priv, ENET_CTL_ENABLE_MASK, ENET_CTL_REG); | 961 | val = enet_readl(priv, ENET_CTL_REG); |
| 962 | val |= ENET_CTL_ENABLE_MASK; | ||
| 963 | enet_writel(priv, val, ENET_CTL_REG); | ||
| 963 | enet_dma_writel(priv, ENETDMA_CFG_EN_MASK, ENETDMA_CFG_REG); | 964 | enet_dma_writel(priv, ENETDMA_CFG_EN_MASK, ENETDMA_CFG_REG); |
| 964 | enet_dma_writel(priv, ENETDMA_CHANCFG_EN_MASK, | 965 | enet_dma_writel(priv, ENETDMA_CHANCFG_EN_MASK, |
| 965 | ENETDMA_CHANCFG_REG(priv->rx_chan)); | 966 | ENETDMA_CHANCFG_REG(priv->rx_chan)); |
