Merge branch 'asoc-4.21' into asoc-next
This commit is contained in:
@@ -171,7 +171,8 @@ static int snd_compr_free(struct inode *inode, struct file *f)
|
||||
}
|
||||
|
||||
data->stream.ops->free(&data->stream);
|
||||
kfree(data->stream.runtime->buffer);
|
||||
if (!data->stream.runtime->dma_buffer_p)
|
||||
kfree(data->stream.runtime->buffer);
|
||||
kfree(data->stream.runtime);
|
||||
kfree(data);
|
||||
return 0;
|
||||
@@ -505,7 +506,7 @@ static int snd_compr_allocate_buffer(struct snd_compr_stream *stream,
|
||||
struct snd_compr_params *params)
|
||||
{
|
||||
unsigned int buffer_size;
|
||||
void *buffer;
|
||||
void *buffer = NULL;
|
||||
|
||||
buffer_size = params->buffer.fragment_size * params->buffer.fragments;
|
||||
if (stream->ops->copy) {
|
||||
@@ -514,7 +515,18 @@ static int snd_compr_allocate_buffer(struct snd_compr_stream *stream,
|
||||
* the data from core
|
||||
*/
|
||||
} else {
|
||||
buffer = kmalloc(buffer_size, GFP_KERNEL);
|
||||
if (stream->runtime->dma_buffer_p) {
|
||||
|
||||
if (buffer_size > stream->runtime->dma_buffer_p->bytes)
|
||||
dev_err(&stream->device->dev,
|
||||
"Not enough DMA buffer");
|
||||
else
|
||||
buffer = stream->runtime->dma_buffer_p->area;
|
||||
|
||||
} else {
|
||||
buffer = kmalloc(buffer_size, GFP_KERNEL);
|
||||
}
|
||||
|
||||
if (!buffer)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
Viittaa uudesa ongelmassa
Block a user