ALSA: firewire: use kmemdup rather than duplicating its implementation
authorAndrzej Hajda <a.hajda@samsung.com>
Fri, 7 Aug 2015 07:59:35 +0000 (09:59 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 7 Aug 2015 12:52:07 +0000 (14:52 +0200)
The patch was generated using fixed coccinelle semantic patch
scripts/coccinelle/api/memdup.cocci [1].

[1]: http://permalink.gmane.org/gmane.linux.kernel/2014320

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/oxfw/oxfw-stream.c

index 873d40fc4509cb38da928e334add9f2794f0babb..77ad5b98e806fa694ddd5c0a4c2ae439c78aebf8 100644 (file)
@@ -512,12 +512,11 @@ assume_stream_formats(struct snd_oxfw *oxfw, enum avc_general_plug_dir dir,
        if (err < 0)
                goto end;
 
-       formats[eid] = kmalloc(*len, GFP_KERNEL);
+       formats[eid] = kmemdup(buf, *len, GFP_KERNEL);
        if (formats[eid] == NULL) {
                err = -ENOMEM;
                goto end;
        }
-       memcpy(formats[eid], buf, *len);
 
        /* apply the format for each available sampling rate */
        for (i = 0; i < ARRAY_SIZE(oxfw_rate_table); i++) {
@@ -531,12 +530,11 @@ assume_stream_formats(struct snd_oxfw *oxfw, enum avc_general_plug_dir dir,
                        continue;
 
                eid++;
-               formats[eid] = kmalloc(*len, GFP_KERNEL);
+               formats[eid] = kmemdup(buf, *len, GFP_KERNEL);
                if (formats[eid] == NULL) {
                        err = -ENOMEM;
                        goto end;
                }
-               memcpy(formats[eid], buf, *len);
                formats[eid][2] = avc_stream_rate_table[i];
        }
 
@@ -594,12 +592,11 @@ static int fill_stream_formats(struct snd_oxfw *oxfw,
                if (err < 0)
                        break;
 
-               formats[eid] = kmalloc(len, GFP_KERNEL);
+               formats[eid] = kmemdup(buf, len, GFP_KERNEL);
                if (formats[eid] == NULL) {
                        err = -ENOMEM;
                        break;
                }
-               memcpy(formats[eid], buf, len);
 
                /* get next entry */
                len = AVC_GENERIC_FRAME_MAXIMUM_BYTES;