瀏覽代碼

ALSA: compress: Fix poll error return codes

We can't return a negative error code from the poll callback the return
type is unsigned and is checked against the poll specific flags we need
to return POLLERR if we encounter an error.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Charles Keepax 9 年之前
父節點
當前提交
1d03f2bd56
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      sound/core/compress_offload.c

+ 2 - 2
sound/core/compress_offload.c

@@ -391,13 +391,13 @@ static unsigned int snd_compr_poll(struct file *f, poll_table *wait)
 	int retval = 0;
 	int retval = 0;
 
 
 	if (snd_BUG_ON(!data))
 	if (snd_BUG_ON(!data))
-		return -EFAULT;
+		return POLLERR;
 
 
 	stream = &data->stream;
 	stream = &data->stream;
 
 
 	mutex_lock(&stream->device->lock);
 	mutex_lock(&stream->device->lock);
 	if (stream->runtime->state == SNDRV_PCM_STATE_OPEN) {
 	if (stream->runtime->state == SNDRV_PCM_STATE_OPEN) {
-		retval = -EBADFD;
+		retval = snd_compr_get_poll(stream) | POLLERR;
 		goto out;
 		goto out;
 	}
 	}
 	poll_wait(f, &stream->runtime->sleep, wait);
 	poll_wait(f, &stream->runtime->sleep, wait);