Skip to content

Commit

Permalink
ALSA: compress: fix the states to check for allowing read
Browse files Browse the repository at this point in the history
for reading compressed data, we need to allow when we are paused, draining or
stopped.

Signed-off-by: Vinod Koul <[email protected]>
Cc: Charles Keepax <[email protected]>
Cc: Richard Fitzgerald <[email protected]>
Reviewed-by: Mark Brown <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
  • Loading branch information
Vinod Koul authored and tiwai committed Apr 29, 2013
1 parent a555bb8 commit 7548134
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions sound/core/compress_offload.c
Original file line number Diff line number Diff line change
Expand Up @@ -311,8 +311,16 @@ static ssize_t snd_compr_read(struct file *f, char __user *buf,
stream = &data->stream;
mutex_lock(&stream->device->lock);

/* read is allowed when stream is running */
if (stream->runtime->state != SNDRV_PCM_STATE_RUNNING) {
/* read is allowed when stream is running, paused, draining and setup
* (yes setup is state which we transition to after stop, so if user
* wants to read data after stop we allow that)
*/
switch (stream->runtime->state) {
case SNDRV_PCM_STATE_OPEN:
case SNDRV_PCM_STATE_PREPARED:
case SNDRV_PCM_STATE_XRUN:
case SNDRV_PCM_STATE_SUSPENDED:
case SNDRV_PCM_STATE_DISCONNECTED:
retval = -EBADFD;
goto out;
}
Expand Down

0 comments on commit 7548134

Please sign in to comment.