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>
Acked-by: Gustavo F. Padovan <padovan@profusion.mobi>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
 
        BT_DBG("firmware data %p size %zu", firmware->data, firmware->size);
 
-       data->fw_data = kmalloc(firmware->size, GFP_KERNEL);
+       data->fw_data = kmemdup(firmware->data, firmware->size, GFP_KERNEL);
        if (!data->fw_data) {
                BT_ERR("Can't allocate memory for firmware image");
                release_firmware(firmware);
                return -ENOMEM;
        }
 
-       memcpy(data->fw_data, firmware->data, firmware->size);
        data->fw_size = firmware->size;
        data->fw_sent = 0;