drivers/video/efifb.c: support framebuffer for NVIDIA 9400M in MacBook Pro 5,1
[safe/jmp/linux-2.6] / drivers / net / ksz884x.c
index 6f187c7..0606a1f 100644 (file)
@@ -30,6 +30,7 @@
 #include <linux/if_vlan.h>
 #include <linux/crc32.h>
 #include <linux/sched.h>
+#include <linux/slab.h>
 
 
 /* DMA Registers */
@@ -4899,8 +4900,10 @@ static int netdev_tx(struct sk_buff *skb, struct net_device *dev)
                        struct sk_buff *org_skb = skb;
 
                        skb = dev_alloc_skb(org_skb->len);
-                       if (!skb)
-                               return NETDEV_TX_BUSY;
+                       if (!skb) {
+                               rc = NETDEV_TX_BUSY;
+                               goto unlock;
+                       }
                        skb_copy_and_csum_dev(org_skb, skb->data);
                        org_skb->ip_summed = 0;
                        skb->len = org_skb->len;
@@ -4914,7 +4917,7 @@ static int netdev_tx(struct sk_buff *skb, struct net_device *dev)
                netif_stop_queue(dev);
                rc = NETDEV_TX_BUSY;
        }
-
+unlock:
        spin_unlock_irq(&hw_priv->hwlock);
 
        return rc;
@@ -5777,7 +5780,7 @@ static void netdev_set_rx_mode(struct net_device *dev)
        if (hw_priv->hw.dev_count > 1)
                return;
 
-       if ((dev->flags & IFF_MULTICAST) && dev->mc_count) {
+       if ((dev->flags & IFF_MULTICAST) && !netdev_mc_empty(dev)) {
                int i = 0;
 
                /* List too big to support so turn on all multicast mode. */
@@ -5790,7 +5793,7 @@ static void netdev_set_rx_mode(struct net_device *dev)
                        return;
                }
 
-               for (mc_ptr = dev->mc_list; mc_ptr; mc_ptr = mc_ptr->next) {
+               netdev_for_each_mc_addr(mc_ptr, dev) {
                        if (!(*mc_ptr->dmi_addr & 1))
                                continue;
                        if (i >= MAX_MULTICAST_LIST)
@@ -6320,7 +6323,7 @@ static int netdev_set_eeprom(struct net_device *dev,
        int len;
 
        if (eeprom->magic != EEPROM_MAGIC)
-               return 1;
+               return -EINVAL;
 
        len = (eeprom->offset + eeprom->len + 1) / 2;
        for (i = eeprom->offset / 2; i < len; i++)