Commit 52978be636374c4bfb61220b37fa12f55a071c46

Authored by Alexey Dobriyan
Committed by Linus Torvalds
1 parent 1a2f67b459

[PATCH] kmemdup: some users

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Showing 7 changed files with 13 additions and 22 deletions Side-by-side Diff

arch/i386/kernel/process.c
... ... @@ -425,13 +425,12 @@
425 425  
426 426 tsk = current;
427 427 if (unlikely(test_tsk_thread_flag(tsk, TIF_IO_BITMAP))) {
428   - p->thread.io_bitmap_ptr = kmalloc(IO_BITMAP_BYTES, GFP_KERNEL);
  428 + p->thread.io_bitmap_ptr = kmemdup(tsk->thread.io_bitmap_ptr,
  429 + IO_BITMAP_BYTES, GFP_KERNEL);
429 430 if (!p->thread.io_bitmap_ptr) {
430 431 p->thread.io_bitmap_max = 0;
431 432 return -ENOMEM;
432 433 }
433   - memcpy(p->thread.io_bitmap_ptr, tsk->thread.io_bitmap_ptr,
434   - IO_BITMAP_BYTES);
435 434 set_tsk_thread_flag(p, TIF_IO_BITMAP);
436 435 }
437 436  
... ... @@ -58,11 +58,9 @@
58 58 if (acl) {
59 59 int size = sizeof(struct posix_acl) + acl->a_count *
60 60 sizeof(struct posix_acl_entry);
61   - clone = kmalloc(size, flags);
62   - if (clone) {
63   - memcpy(clone, acl, size);
  61 + clone = kmemdup(acl, size, flags);
  62 + if (clone)
64 63 atomic_set(&clone->a_refcount, 1);
65   - }
66 64 }
67 65 return clone;
68 66 }
... ... @@ -1324,12 +1324,11 @@
1324 1324 atomic_set(&new->refcnt, 1);
1325 1325 if (new->policy == MPOL_BIND) {
1326 1326 int sz = ksize(old->v.zonelist);
1327   - new->v.zonelist = kmalloc(sz, SLAB_KERNEL);
  1327 + new->v.zonelist = kmemdup(old->v.zonelist, sz, SLAB_KERNEL);
1328 1328 if (!new->v.zonelist) {
1329 1329 kmem_cache_free(policy_cache, new);
1330 1330 return ERR_PTR(-ENOMEM);
1331 1331 }
1332   - memcpy(new->v.zonelist, old->v.zonelist, sz);
1333 1332 }
1334 1333 return new;
1335 1334 }
net/rxrpc/transport.c
... ... @@ -381,11 +381,10 @@
381 381  
382 382 /* allocate a new message record */
383 383 ret = -ENOMEM;
384   - msg = kmalloc(sizeof(struct rxrpc_message), GFP_KERNEL);
  384 + msg = kmemdup(jumbomsg, sizeof(struct rxrpc_message), GFP_KERNEL);
385 385 if (!msg)
386 386 goto error;
387 387  
388   - memcpy(msg, jumbomsg, sizeof(*msg));
389 388 list_add_tail(&msg->link, msgq);
390 389  
391 390 /* adjust the jumbo packet */
sound/pci/echoaudio/layla24_dsp.c
... ... @@ -302,11 +302,11 @@
302 302  
303 303 /* Check to see if this is already loaded */
304 304 if (asic != chip->asic_code) {
305   - monitors = kmalloc(MONITOR_ARRAY_SIZE, GFP_KERNEL);
  305 + monitors = kmemdup(chip->comm_page->monitors,
  306 + MONITOR_ARRAY_SIZE, GFP_KERNEL);
306 307 if (! monitors)
307 308 return -ENOMEM;
308 309  
309   - memcpy(monitors, chip->comm_page->monitors, MONITOR_ARRAY_SIZE);
310 310 memset(chip->comm_page->monitors, ECHOGAIN_MUTED,
311 311 MONITOR_ARRAY_SIZE);
312 312  
sound/usb/usbaudio.c
... ... @@ -2046,10 +2046,9 @@
2046 2046 void *buf = NULL;
2047 2047  
2048 2048 if (size > 0) {
2049   - buf = kmalloc(size, GFP_KERNEL);
  2049 + buf = kmemdup(data, size, GFP_KERNEL);
2050 2050 if (!buf)
2051 2051 return -ENOMEM;
2052   - memcpy(buf, data, size);
2053 2052 }
2054 2053 err = usb_control_msg(dev, pipe, request, requesttype,
2055 2054 value, index, buf, size, timeout);
2056 2055  
2057 2056  
... ... @@ -2846,12 +2845,11 @@
2846 2845 int stream, err;
2847 2846 int *rate_table = NULL;
2848 2847  
2849   - fp = kmalloc(sizeof(*fp), GFP_KERNEL);
  2848 + fp = kmemdup(quirk->data, sizeof(*fp), GFP_KERNEL);
2850 2849 if (! fp) {
2851   - snd_printk(KERN_ERR "cannot malloc\n");
  2850 + snd_printk(KERN_ERR "cannot memdup\n");
2852 2851 return -ENOMEM;
2853 2852 }
2854   - memcpy(fp, quirk->data, sizeof(*fp));
2855 2853 if (fp->nr_rates > 0) {
2856 2854 rate_table = kmalloc(sizeof(int) * fp->nr_rates, GFP_KERNEL);
2857 2855 if (!rate_table) {
2858 2856  
... ... @@ -3029,10 +3027,9 @@
3029 3027 altsd->bNumEndpoints != 1)
3030 3028 return -ENXIO;
3031 3029  
3032   - fp = kmalloc(sizeof(*fp), GFP_KERNEL);
  3030 + fp = kmemdup(&ua1000_format, sizeof(*fp), GFP_KERNEL);
3033 3031 if (!fp)
3034 3032 return -ENOMEM;
3035   - memcpy(fp, &ua1000_format, sizeof(*fp));
3036 3033  
3037 3034 fp->channels = alts->extra[4];
3038 3035 fp->iface = altsd->bInterfaceNumber;
... ... @@ -323,10 +323,9 @@
323 323 const void *data, int len)
324 324 {
325 325 int err;
326   - void *buf = kmalloc(len, GFP_KERNEL);
  326 + void *buf = kmemdup(data, len, GFP_KERNEL);
327 327 if (!buf)
328 328 return -ENOMEM;
329   - memcpy(buf, data, len);
330 329 dump_urb("sending", buf, len);
331 330 err = usb_bulk_msg(ep->umidi->chip->dev, ep->urb->pipe, buf, len,
332 331 NULL, 250);