diff options
author | Julia Lawall <julia@diku.dk> | 2010-05-15 23:21:43 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-17 16:31:15 -0700 |
commit | 94002c07ff0e207a883519ccc35c0b5390b29331 (patch) | |
tree | b730a75ef2ad76d1e3a322e5982b30ca46b6c487 /drivers/staging/line6 | |
parent | 96fe9ee2c2dfe3268961f3873ea6098b9b9f27c2 (diff) |
Staging: 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/staging/line6')
-rw-r--r-- | drivers/staging/line6/dumprequest.c | 3 | ||||
-rw-r--r-- | drivers/staging/line6/pod.c | 6 | ||||
-rw-r--r-- | drivers/staging/line6/variax.c | 5 |
3 files changed, 5 insertions, 9 deletions
diff --git a/drivers/staging/line6/dumprequest.c b/drivers/staging/line6/dumprequest.c index bb8c9da5803f..cd468c39da5c 100644 --- a/drivers/staging/line6/dumprequest.c +++ b/drivers/staging/line6/dumprequest.c @@ -105,10 +105,9 @@ int line6_wait_dump(struct line6_dump_request *l6dr, int nonblock) int line6_dumpreq_initbuf(struct line6_dump_request *l6dr, const void *buf, size_t len, int num) { - l6dr->reqbufs[num].buffer = kmalloc(len, GFP_KERNEL); + l6dr->reqbufs[num].buffer = kmemdup(buf, len, GFP_KERNEL); if (l6dr->reqbufs[num].buffer == NULL) return -ENOMEM; - memcpy(l6dr->reqbufs[num].buffer, buf, len); l6dr->reqbufs[num].length = len; return 0; } diff --git a/drivers/staging/line6/pod.c b/drivers/staging/line6/pod.c index 4983f2b51cf2..28f514611abc 100644 --- a/drivers/staging/line6/pod.c +++ b/drivers/staging/line6/pod.c @@ -1074,7 +1074,8 @@ int pod_init(struct usb_interface *interface, struct usb_line6_pod *pod) return -ENOMEM; } - pod->buffer_versionreq = kmalloc(sizeof(pod_request_version), + pod->buffer_versionreq = kmemdup(pod_request_version, + sizeof(pod_request_version), GFP_KERNEL); if (pod->buffer_versionreq == NULL) { @@ -1083,9 +1084,6 @@ int pod_init(struct usb_interface *interface, struct usb_line6_pod *pod) return -ENOMEM; } - memcpy(pod->buffer_versionreq, pod_request_version, - sizeof(pod_request_version)); - /* create sysfs entries: */ err = pod_create_files2(&interface->dev); if (err < 0) { diff --git a/drivers/staging/line6/variax.c b/drivers/staging/line6/variax.c index 28eb89983f36..58ddbe6393ff 100644 --- a/drivers/staging/line6/variax.c +++ b/drivers/staging/line6/variax.c @@ -486,7 +486,8 @@ int variax_init(struct usb_interface *interface, return err; } - variax->buffer_activate = kmalloc(sizeof(variax_activate), GFP_KERNEL); + variax->buffer_activate = kmemdup(variax_activate, + sizeof(variax_activate), GFP_KERNEL); if (variax->buffer_activate == NULL) { dev_err(&interface->dev, "Out of memory\n"); @@ -494,8 +495,6 @@ int variax_init(struct usb_interface *interface, return -ENOMEM; } - memcpy(variax->buffer_activate, variax_activate, - sizeof(variax_activate)); init_timer(&variax->activate_timer); /* create sysfs entries: */ |