buffer: prevent buffer operation for 0 bytes

Prevents buffer consume and produce operations
if there are no bytes available.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
This commit is contained in:
Tomasz Lauda 2019-03-11 13:43:46 +01:00 committed by Liam Girdwood
parent f61fcc1243
commit 2289da9e28
1 changed files with 14 additions and 0 deletions

View File

@ -112,6 +112,13 @@ void comp_update_buffer_produce(struct comp_buffer *buffer, uint32_t bytes)
uint32_t head = bytes;
uint32_t tail = 0;
/* return if no bytes */
if (!bytes) {
trace_buffer("comp_update_buffer_produce(), "
"no bytes to produce");
return;
}
spin_lock_irq(&buffer->lock, flags);
/* calculate head and tail size for dcache circular wrap ops */
@ -178,6 +185,13 @@ void comp_update_buffer_consume(struct comp_buffer *buffer, uint32_t bytes)
{
uint32_t flags;
/* return if no bytes */
if (!bytes) {
trace_buffer("comp_update_buffer_consume(), "
"no bytes to consume");
return;
}
spin_lock_irq(&buffer->lock, flags);
buffer->r_ptr += bytes;