Re: [PATCH] dvb/cinergyT2: Fix cinergyt2_poll() to allow for non-blocking IO on the frontend device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

just a small reminder without wanting to put any pressure on anybody ...

Is there (still) something wrong with the patch?

-- Axel

Dyks, Axel (XL) wrote:
> Hi,
> 
> fixed indention and "diff"-ed against "v4l-dvb.git"
> 
> "cinergyt2_poll()" shouldn't return (POLLIN | POLLRDNORM | POLLPRI) when
> there are no pending events. User space programs that do non-bocking IO
> using "select()" and/or "poll()" would otherwise produce high system load.
> See http://forum.videolan.org/viewtopic.php?t=20529 for details.
> 
> Signed-off-by: Axel Dyks <xl@xxxxxxxxxxxx>  
> 
> diff --git a/drivers/media/dvb/cinergyT2/cinergyT2.c b/drivers/media/dvb/cinergyT2/cinergyT2.c
> index 9325d03..9d77ef0 100644
> --- a/drivers/media/dvb/cinergyT2/cinergyT2.c
> +++ b/drivers/media/dvb/cinergyT2/cinergyT2.c
> @@ -544,15 +544,19 @@ static unsigned int cinergyt2_poll (stru
>  {
>  	struct dvb_device *dvbdev = file->private_data;
>  	struct cinergyt2 *cinergyt2 = dvbdev->priv;
> +	unsigned int mask = 0;
>  
>  	if (cinergyt2->disconnect_pending || mutex_lock_interruptible(&cinergyt2->sem))
>  		return -ERESTARTSYS;
>  
>  	poll_wait(file, &cinergyt2->poll_wq, wait);
>  
> +	if (cinergyt2->pending_fe_events != 0)
> +		mask |= (POLLIN | POLLRDNORM | POLLPRI);
> +
>  	mutex_unlock(&cinergyt2->sem);
>  
> -	return (POLLIN | POLLRDNORM | POLLPRI);
> +	return mask;
>  }
>  
>  
> 
> _______________________________________________
> 
> linux-dvb@xxxxxxxxxxx
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
> 

_______________________________________________

linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux