genirq: Add IRQF_RESUME_EARLY and resume such IRQs earlier
[pandora-kernel.git] / drivers / net / 3c505.c
index 29b8d1d..88d766e 100644 (file)
@@ -1055,7 +1055,7 @@ static void elp_timeout(struct net_device *dev)
                   (stat & ACRF) ? "interrupt" : "command");
        if (elp_debug >= 1)
                pr_debug("%s: status %#02x\n", dev->name, stat);
-       dev->trans_start = jiffies;
+       dev->trans_start = jiffies; /* prevent tx timeout */
        dev->stats.tx_dropped++;
        netif_wake_queue(dev);
 }
@@ -1093,11 +1093,6 @@ static netdev_tx_t elp_start_xmit(struct sk_buff *skb, struct net_device *dev)
        if (elp_debug >= 3)
                pr_debug("%s: packet of length %d sent\n", dev->name, (int) skb->len);
 
-       /*
-        * start the transmit timeout
-        */
-       dev->trans_start = jiffies;
-
        prime_rx(dev);
        spin_unlock_irqrestore(&adapter->lock, flags);
        netif_start_queue(dev);
@@ -1216,7 +1211,7 @@ static int elp_close(struct net_device *dev)
 static void elp_set_mc_list(struct net_device *dev)
 {
        elp_device *adapter = netdev_priv(dev);
-       struct dev_mc_list *dmi;
+       struct netdev_hw_addr *ha;
        int i;
        unsigned long flags;
 
@@ -1231,8 +1226,9 @@ static void elp_set_mc_list(struct net_device *dev)
                adapter->tx_pcb.command = CMD_LOAD_MULTICAST_LIST;
                adapter->tx_pcb.length = 6 * netdev_mc_count(dev);
                i = 0;
-               netdev_for_each_mc_addr(dmi, dev)
-                       memcpy(adapter->tx_pcb.data.multicast[i++], dmi->dmi_addr, 6);
+               netdev_for_each_mc_addr(ha, dev)
+                       memcpy(adapter->tx_pcb.data.multicast[i++],
+                              ha->addr, 6);
                adapter->got[CMD_LOAD_MULTICAST_LIST] = 0;
                if (!send_pcb(dev, &adapter->tx_pcb))
                        pr_err("%s: couldn't send set_multicast command\n", dev->name);