staging: line6: Use kmemdup rather than duplicating its implementation
authorLaurent Navet <laurent.navet@gmail.com>
Mon, 3 Dec 2012 13:20:25 +0000 (14:20 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Jan 2013 22:00:35 +0000 (14:00 -0800)
staging: line6: driver.c
 The semantic patch that makes this output is available
 in scripts/coccinelle/api/memdup.cocci.

Signed-off-by: Laurent Navet <laurent.navet@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/line6/driver.c

index 1e4ce50069a9913a644da817b142cbf974d348db..71c2a572b5ccda11dbeade83b4ec3327db349eb8 100644 (file)
@@ -307,14 +307,13 @@ int line6_version_request_async(struct usb_line6 *line6)
        char *buffer;
        int retval;
 
-       buffer = kmalloc(sizeof(line6_request_version), GFP_ATOMIC);
+       buffer = kmemdup(line6_request_version,
+                       sizeof(line6_request_version), GFP_ATOMIC);
        if (buffer == NULL) {
                dev_err(line6->ifcdev, "Out of memory");
                return -ENOMEM;
        }
 
-       memcpy(buffer, line6_request_version, sizeof(line6_request_version));
-
        retval = line6_send_raw_message_async(line6, buffer,
                                              sizeof(line6_request_version));
        kfree(buffer);