diff options
Diffstat (limited to 'drivers/net/usb/mcs7830.c')
-rw-r--r-- | drivers/net/usb/mcs7830.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/net/usb/mcs7830.c b/drivers/net/usb/mcs7830.c index 9f24e3f871e1..a6281e3987b5 100644 --- a/drivers/net/usb/mcs7830.c +++ b/drivers/net/usb/mcs7830.c | |||
@@ -142,12 +142,10 @@ static int mcs7830_set_reg(struct usbnet *dev, u16 index, u16 size, const void * | |||
142 | int ret; | 142 | int ret; |
143 | void *buffer; | 143 | void *buffer; |
144 | 144 | ||
145 | buffer = kmalloc(size, GFP_NOIO); | 145 | buffer = kmemdup(data, size, GFP_NOIO); |
146 | if (buffer == NULL) | 146 | if (buffer == NULL) |
147 | return -ENOMEM; | 147 | return -ENOMEM; |
148 | 148 | ||
149 | memcpy(buffer, data, size); | ||
150 | |||
151 | ret = usb_control_msg(xdev, usb_sndctrlpipe(xdev, 0), MCS7830_WR_BREQ, | 149 | ret = usb_control_msg(xdev, usb_sndctrlpipe(xdev, 0), MCS7830_WR_BREQ, |
152 | MCS7830_WR_BMREQ, 0x0000, index, buffer, | 150 | MCS7830_WR_BMREQ, 0x0000, index, buffer, |
153 | size, MCS7830_CTRL_TIMEOUT); | 151 | size, MCS7830_CTRL_TIMEOUT); |
@@ -453,12 +451,12 @@ static void mcs7830_data_set_multicast(struct net_device *net) | |||
453 | * for our 8 byte filter buffer | 451 | * for our 8 byte filter buffer |
454 | * to avoid allocating memory that | 452 | * to avoid allocating memory that |
455 | * is tricky to free later */ | 453 | * is tricky to free later */ |
456 | struct dev_mc_list *mc_list; | 454 | struct netdev_hw_addr *ha; |
457 | u32 crc_bits; | 455 | u32 crc_bits; |
458 | 456 | ||
459 | /* Build the multicast hash filter. */ | 457 | /* Build the multicast hash filter. */ |
460 | netdev_for_each_mc_addr(mc_list, net) { | 458 | netdev_for_each_mc_addr(ha, net) { |
461 | crc_bits = ether_crc(ETH_ALEN, mc_list->dmi_addr) >> 26; | 459 | crc_bits = ether_crc(ETH_ALEN, ha->addr) >> 26; |
462 | data->multi_filter[crc_bits >> 3] |= 1 << (crc_bits & 7); | 460 | data->multi_filter[crc_bits >> 3] |= 1 << (crc_bits & 7); |
463 | } | 461 | } |
464 | } | 462 | } |