X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=drivers%2Fusb%2Fmisc%2Femi62.c;h=23153eac0dfaf0b869991ed39af4698aa3089caa;hb=27d2ab54bdfaffdbdc1a81100dc53c6479c9db35;hp=fe351371f274e11e6b576dcce1a671cd2b8ef0f8;hpb=d90125bfe958ed0451c6b98f831c86aba08b43d5;p=powerpc.git diff --git a/drivers/usb/misc/emi62.c b/drivers/usb/misc/emi62.c index fe351371f2..23153eac0d 100644 --- a/drivers/usb/misc/emi62.c +++ b/drivers/usb/misc/emi62.c @@ -61,13 +61,12 @@ static void __exit emi62_exit (void); static int emi62_writememory (struct usb_device *dev, int address, unsigned char *data, int length, __u8 request) { int result; - unsigned char *buffer = kmalloc (length, GFP_KERNEL); + unsigned char *buffer = kmemdup(data, length, GFP_KERNEL); if (!buffer) { err("emi62: kmalloc(%d) failed.", length); return -ENOMEM; } - memcpy (buffer, data, length); /* Note: usb_control_msg returns negative value on error or length of the * data that was written! */ result = usb_control_msg (dev, usb_sndctrlpipe(dev, 0), request, 0x40, address, 0, buffer, length, 300);