aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget
diff options
context:
space:
mode:
authorJulia Lawall <julia@diku.dk>2010-05-15 17:15:44 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2010-05-20 16:21:49 -0400
commit4b8e12336fede9e30b6140e840431161d46cf677 (patch)
tree54242b26f4c80b497904c925842cb56a6c69c0a2 /drivers/usb/gadget
parenteefd9029fde4d90d59804eeb54880ab8db5c1866 (diff)
USB: gadget: 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: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r--drivers/usb/gadget/atmel_usba_udc.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c
index 75a256f3d45b..d623c7bda1f6 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -48,10 +48,9 @@ static int queue_dbg_open(struct inode *inode, struct file *file)
48 48
49 spin_lock_irq(&ep->udc->lock); 49 spin_lock_irq(&ep->udc->lock);
50 list_for_each_entry(req, &ep->queue, queue) { 50 list_for_each_entry(req, &ep->queue, queue) {
51 req_copy = kmalloc(sizeof(*req_copy), GFP_ATOMIC); 51 req_copy = kmemdup(req, sizeof(*req_copy), GFP_ATOMIC);
52 if (!req_copy) 52 if (!req_copy)
53 goto fail; 53 goto fail;
54 memcpy(req_copy, req, sizeof(*req_copy));
55 list_add_tail(&req_copy->queue, queue_data); 54 list_add_tail(&req_copy->queue, queue_data);
56 } 55 }
57 spin_unlock_irq(&ep->udc->lock); 56 spin_unlock_irq(&ep->udc->lock);