]> Pileus Git - ~andy/linux/blobdiff - drivers/hid/hid-roccat-common.c
Merge branches 'hyperv', 'multitouch', 'roccat', 'upstream', 'upstream-fixes', 'wacom...
[~andy/linux] / drivers / hid / hid-roccat-common.c
index edf898dee28bd177a0e7c4fc7a40971aee72e457..a6d93992c75a4ee8d593729f867ca582975e0629 100644 (file)
@@ -13,6 +13,7 @@
 
 #include <linux/hid.h>
 #include <linux/slab.h>
+#include <linux/module.h>
 #include "hid-roccat-common.h"
 
 static inline uint16_t roccat_common_feature_report(uint8_t report_id)
@@ -48,12 +49,10 @@ int roccat_common_send(struct usb_device *usb_dev, uint report_id,
        char *buf;
        int len;
 
-       buf = kmalloc(size, GFP_KERNEL);
+       buf = kmemdup(data, size, GFP_KERNEL);
        if (buf == NULL)
                return -ENOMEM;
 
-       memcpy(buf, data, size);
-
        len = usb_control_msg(usb_dev, usb_sndctrlpipe(usb_dev, 0),
                        HID_REQ_SET_REPORT,
                        USB_TYPE_CLASS | USB_RECIP_INTERFACE | USB_DIR_OUT,