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