drivers/net/wireless/ath/ath9k: Use kmemdup
authorJulia Lawall <julia@diku.dk>
Sat, 15 May 2010 21:17:19 +0000 (23:17 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 2 Jun 2010 20:13:11 +0000 (16:13 -0400)
Use kmemdup when some other buffer is immediately copied into the
allocated region.

A simplified version of the semantic patch that makes this change is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression from,to,size,flag;
statement S;
@@

-  to = \(kmalloc\|kzalloc\)(size,flag);
+  to = kmemdup(from,size,flag);
   if (to==NULL || ...) S
-  memcpy(to, from, size);
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/hif_usb.c

index 77b359162d6cad0a408754fff4cc8b9af64d3063..3bd66220604f29c069701b31158f3d0f03569579 100644 (file)
@@ -907,12 +907,10 @@ static void ath9k_hif_usb_reboot(struct usb_device *udev)
        void *buf;
        int ret;
 
-       buf = kmalloc(4, GFP_KERNEL);
+       buf = kmemdup(&reboot_cmd, 4, GFP_KERNEL);
        if (!buf)
                return;
 
-       memcpy(buf, &reboot_cmd, 4);
-
        ret = usb_bulk_msg(udev, usb_sndbulkpipe(udev, USB_REG_OUT_PIPE),
                           buf, 4, NULL, HZ);
        if (ret)