ALSA: seq: Fix poll() error return
authorTakashi Iwai <tiwai@suse.de>
Wed, 25 Jul 2018 14:34:12 +0000 (16:34 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 26 Jul 2018 06:23:26 +0000 (08:23 +0200)
The sanity checks in ALSA sequencer and OSS sequencer emulation codes
return falsely -ENXIO from poll callback.  They should be EPOLLERR
instead.

This was caught thanks to the recent change to the return value.

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/seq/oss/seq_oss.c
sound/core/seq/seq_clientmgr.c

index 5f64d0d..e1f44fc 100644 (file)
@@ -203,7 +203,7 @@ odev_poll(struct file *file, poll_table * wait)
        struct seq_oss_devinfo *dp;
        dp = file->private_data;
        if (snd_BUG_ON(!dp))
-               return -ENXIO;
+               return EPOLLERR;
        return snd_seq_oss_poll(dp, file, wait);
 }
 
index 56ca784..6fd4b07 100644 (file)
@@ -1101,7 +1101,7 @@ static __poll_t snd_seq_poll(struct file *file, poll_table * wait)
 
        /* check client structures are in place */
        if (snd_BUG_ON(!client))
-               return -ENXIO;
+               return EPOLLERR;
 
        if ((snd_seq_file_flags(file) & SNDRV_SEQ_LFLG_INPUT) &&
            client->data.user.fifo) {