when usb-type tuner is pulled out, user applications did not close device's FD,
and go on polling the device, we should return POLLERR directly.

Signed-off-by: Changbing Xiong <cb.xi...@samsung.com>
---
 drivers/media/dvb-core/dmxdev.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxdev.c
index 7a5c070..42b5e70 100755
--- a/drivers/media/dvb-core/dmxdev.c
+++ b/drivers/media/dvb-core/dmxdev.c
@@ -1085,9 +1085,10 @@ static long dvb_demux_ioctl(struct file *file, unsigned 
int cmd,
 static unsigned int dvb_demux_poll(struct file *file, poll_table *wait)
 {
        struct dmxdev_filter *dmxdevfilter = file->private_data;
+       struct dmxdev *dmxdev = dmxdevfilter->dev;
        unsigned int mask = 0;

-       if (!dmxdevfilter)
+       if ((!dmxdevfilter) || (dmxdev->exit))
                return POLLERR;

        poll_wait(file, &dmxdevfilter->buffer.queue, wait);
@@ -1181,6 +1182,9 @@ static unsigned int dvb_dvr_poll(struct file *file, 
poll_table *wait)

        dprintk("function : %s\n", __func__);

+       if (dmxdev->exit)
+               return POLLERR;
+
        poll_wait(file, &dmxdev->dvr_buffer.queue, wait);

        if ((file->f_flags & O_ACCMODE) == O_RDONLY) {
--
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to