]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: saa7164: fix return codes for the polling routine
authorMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Tue, 7 Aug 2018 13:18:26 +0000 (09:18 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 8 Aug 2018 14:57:14 +0000 (10:57 -0400)
All poll handlers should return a poll flag, and not error codes. So,
instead of returning an error, do the right thing at saa7164,
e. g. to return EPOLERR on errors, just like the V4L2 VB2 code.

Solves the following sparse warnings:
    drivers/media/pci/saa7164/saa7164-vbi.c:632:24: warning: incorrect type in return expression (different base types)
    drivers/media/pci/saa7164/saa7164-vbi.c:632:24:    expected restricted __poll_t
    drivers/media/pci/saa7164/saa7164-vbi.c:632:24:    got int
    drivers/media/pci/saa7164/saa7164-vbi.c:637:40: warning: incorrect type in return expression (different base types)
    drivers/media/pci/saa7164/saa7164-vbi.c:637:40:    expected restricted __poll_t
    drivers/media/pci/saa7164/saa7164-vbi.c:637:40:    got int
    drivers/media/pci/saa7164/saa7164-vbi.c:647:40: warning: incorrect type in return expression (different base types)
    drivers/media/pci/saa7164/saa7164-vbi.c:647:40:    expected restricted __poll_t
    drivers/media/pci/saa7164/saa7164-vbi.c:647:40:    got int

Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/pci/saa7164/saa7164-vbi.c

index 64ab91c24c18610113f373419d9467d965c58fe3..221de91a8bae5731a1e046ab77458a4880a9e122 100644 (file)
@@ -629,12 +629,12 @@ static __poll_t fops_poll(struct file *file, poll_table *wait)
                port->last_poll_msecs_diff);
 
        if (!video_is_registered(port->v4l_device))
-               return -EIO;
+               return EPOLLERR;
 
        if (atomic_cmpxchg(&fh->v4l_reading, 0, 1) == 0) {
                if (atomic_inc_return(&port->v4l_reader_count) == 1) {
                        if (saa7164_vbi_initialize(port) < 0)
-                               return -EINVAL;
+                               return EPOLLERR;
                        saa7164_vbi_start_streaming(port);
                        msleep(200);
                }
@@ -644,7 +644,7 @@ static __poll_t fops_poll(struct file *file, poll_table *wait)
        if ((file->f_flags & O_NONBLOCK) == 0) {
                if (wait_event_interruptible(port->wait_read,
                        saa7164_vbi_next_buf(port))) {
-                               return -ERESTARTSYS;
+                               return EPOLLERR;
                }
        }