]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/net/usb/dm9601.c
Merge git://git.infradead.org/users/dwmw2/mtd-2.6.38
[mv-sheeva.git] / drivers / net / usb / dm9601.c
index 5dfed9297b22fbe4f5b8aa568e20ed416ee8df72..5002f5be47be7dcbd95e0fd9cee2a80910046a81 100644 (file)
@@ -93,10 +93,9 @@ static int dm_write(struct usbnet *dev, u8 reg, u16 length, void *data)
        netdev_dbg(dev->net, "dm_write() reg=0x%02x, length=%d\n", reg, length);
 
        if (data) {
-               buf = kmalloc(length, GFP_KERNEL);
+               buf = kmemdup(data, length, GFP_KERNEL);
                if (!buf)
                        goto out;
-               memcpy(buf, data, length);
        }
 
        err = usb_control_msg(dev->udev,
@@ -387,10 +386,10 @@ static void dm9601_set_multicast(struct net_device *net)
                   netdev_mc_count(net) > DM_MAX_MCAST) {
                rx_ctl |= 0x04;
        } else if (!netdev_mc_empty(net)) {
-               struct dev_mc_list *mc_list;
+               struct netdev_hw_addr *ha;
 
-               netdev_for_each_mc_addr(mc_list, net) {
-                       u32 crc = ether_crc(ETH_ALEN, mc_list->dmi_addr) >> 26;
+               netdev_for_each_mc_addr(ha, net) {
+                       u32 crc = ether_crc(ETH_ALEN, ha->addr) >> 26;
                        hashes[crc >> 3] |= 1 << (crc & 0x7);
                }
        }
@@ -651,6 +650,10 @@ static const struct usb_device_id products[] = {
        USB_DEVICE(0x0fe6, 0x8101),     /* DM9601 USB to Fast Ethernet Adapter */
        .driver_info = (unsigned long)&dm9601_info,
         },
+       {
+        USB_DEVICE(0x0fe6, 0x9700),    /* DM9601 USB to Fast Ethernet Adapter */
+        .driver_info = (unsigned long)&dm9601_info,
+        },
        {
         USB_DEVICE(0x0a46, 0x9000),    /* DM9000E */
         .driver_info = (unsigned long)&dm9601_info,