- patches.arch/x86_mce_intel_decode_physical_address.patch:
[linux-flexiantxendom0-3.2.10.git] / drivers / net / bcm63xx_enet.c
index 17460ab..faf5add 100644 (file)
@@ -341,11 +341,9 @@ static int bcm_enet_receive_queue(struct net_device *dev, int budget)
                }
 
                skb_put(skb, len);
-               skb->dev = dev;
                skb->protocol = eth_type_trans(skb, dev);
                priv->stats.rx_packets++;
                priv->stats.rx_bytes += len;
-               dev->last_rx = jiffies;
                netif_receive_skb(skb);
 
        } while (--budget > 0);
@@ -567,7 +565,6 @@ static int bcm_enet_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
        priv->stats.tx_bytes += skb->len;
        priv->stats.tx_packets++;
-       dev->trans_start = jiffies;
        ret = NETDEV_TX_OK;
 
 out_unlock:
@@ -605,7 +602,7 @@ static int bcm_enet_set_mac_address(struct net_device *dev, void *p)
 static void bcm_enet_set_multicast_list(struct net_device *dev)
 {
        struct bcm_enet_priv *priv;
-       struct dev_mc_list *mc_list;
+       struct netdev_hw_addr *ha;
        u32 val;
        int i;
 
@@ -633,14 +630,14 @@ static void bcm_enet_set_multicast_list(struct net_device *dev)
        }
 
        i = 0;
-       netdev_for_each_mc_addr(mc_list, dev) {
+       netdev_for_each_mc_addr(ha, dev) {
                u8 *dmi_addr;
                u32 tmp;
 
                if (i == 3)
                        break;
                /* update perfect match registers */
-               dmi_addr = mc_list->dmi_addr;
+               dmi_addr = ha->addr;
                tmp = (dmi_addr[2] << 24) | (dmi_addr[3] << 16) |
                        (dmi_addr[4] << 8) | dmi_addr[5];
                enet_writel(priv, tmp, ENET_PML_REG(i + 1));
@@ -960,7 +957,9 @@ static int bcm_enet_open(struct net_device *dev)
        /* all set, enable mac and interrupts, start dma engine and
         * kick rx dma channel */
        wmb();
-       enet_writel(priv, ENET_CTL_ENABLE_MASK, ENET_CTL_REG);
+       val = enet_readl(priv, ENET_CTL_REG);
+       val |= ENET_CTL_ENABLE_MASK;
+       enet_writel(priv, val, ENET_CTL_REG);
        enet_dma_writel(priv, ENETDMA_CFG_EN_MASK, ENETDMA_CFG_REG);
        enet_dma_writel(priv, ENETDMA_CHANCFG_EN_MASK,
                        ENETDMA_CHANCFG_REG(priv->rx_chan));
@@ -1647,7 +1646,6 @@ static int __devinit bcm_enet_probe(struct platform_device *pdev)
        if (!dev)
                return -ENOMEM;
        priv = netdev_priv(dev);
-       memset(priv, 0, sizeof(*priv));
 
        ret = compute_hw_mtu(priv, dev->mtu);
        if (ret)