Staging: line6: Use kmemdup rather than duplicating its implementation
authorThomas Meyer <thomas@m3y3r.de>
Tue, 8 Nov 2011 19:40:26 +0000 (20:40 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sun, 27 Nov 2011 00:14:57 +0000 (16:14 -0800)
 Use kmemdup rather than duplicating its implementation

 The semantic patch that makes this change is available
 in scripts/coccinelle/api/memdup.cocci.

 More information about semantic patching is available at
 http://coccinelle.lip6.fr/

Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/line6/midi.c

index ed5577f25afe1008c4257918da8edc3fe98fbea3..7f1e90e14411e85b35c88d0fb35fc90cb2610614 100644 (file)
@@ -135,7 +135,7 @@ static int send_midi_async(struct usb_line6 *line6, unsigned char *data,
        line6_write_hexdump(line6, 'S', data, length);
 #endif
 
-       transfer_buffer = kmalloc(length, GFP_ATOMIC);
+       transfer_buffer = kmemdup(data, length, GFP_ATOMIC);
 
        if (transfer_buffer == NULL) {
                usb_free_urb(urb);
@@ -143,7 +143,6 @@ static int send_midi_async(struct usb_line6 *line6, unsigned char *data,
                return -ENOMEM;
        }
 
-       memcpy(transfer_buffer, data, length);
        usb_fill_int_urb(urb, line6->usbdev,
                         usb_sndbulkpipe(line6->usbdev,
                                         line6->ep_control_write),