mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-09 14:50:19 +00:00
drivers/net/usb: Use kmemdup
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: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
08d18f3b62
commit
175c044141
@ -203,13 +203,12 @@ static int set_registers(pegasus_t * pegasus, __u16 indx, __u16 size,
|
||||
char *buffer;
|
||||
DECLARE_WAITQUEUE(wait, current);
|
||||
|
||||
buffer = kmalloc(size, GFP_KERNEL);
|
||||
buffer = kmemdup(data, size, GFP_KERNEL);
|
||||
if (!buffer) {
|
||||
netif_warn(pegasus, drv, pegasus->net,
|
||||
"out of memory in %s\n", __func__);
|
||||
return -ENOMEM;
|
||||
}
|
||||
memcpy(buffer, data, size);
|
||||
|
||||
add_wait_queue(&pegasus->ctrl_wait, &wait);
|
||||
set_current_state(TASK_UNINTERRUPTIBLE);
|
||||
@ -255,13 +254,12 @@ static int set_register(pegasus_t * pegasus, __u16 indx, __u8 data)
|
||||
char *tmp;
|
||||
DECLARE_WAITQUEUE(wait, current);
|
||||
|
||||
tmp = kmalloc(1, GFP_KERNEL);
|
||||
tmp = kmemdup(&data, 1, GFP_KERNEL);
|
||||
if (!tmp) {
|
||||
netif_warn(pegasus, drv, pegasus->net,
|
||||
"out of memory in %s\n", __func__);
|
||||
return -ENOMEM;
|
||||
}
|
||||
memcpy(tmp, &data, 1);
|
||||
add_wait_queue(&pegasus->ctrl_wait, &wait);
|
||||
set_current_state(TASK_UNINTERRUPTIBLE);
|
||||
while (pegasus->flags & ETH_REGS_CHANGED)
|
||||
|
Loading…
x
Reference in New Issue
Block a user