saa7164: poll mask set incorrectly
Subsystems (2)
PATCH 1/1 saa7164: poll mask set incorrectly
list_first_entry() always returns non-null here. I think the intent was to test whether there were any entries in the used list.
Signed-off-by Dan Carpenter <[email protected]>
---
I don't have this hardware so I can't test this. Please check carefully.
drivers/media/video/saa7164/saa7164-encoder.c +1 -5
@@ -1238,7 +1238,6 @@ static unsigned int fops_poll(struct file *file, poll_table *wait) {struct saa7164_encoder_fh *fh = (struct saa7164_encoder_fh *)file->private_data;struct saa7164_port *port = fh->port; -struct saa7164_user_buffer *ubuf;unsigned int mask =0 ; port->last_poll_msecs_diff = port->last_poll_msecs;
@@ -1271,10 +1270,7 @@ static unsigned int fops_poll(struct file *file, poll_table *wait) }/* Pull the first buffer from the used list */ - ubuf =list_first_entry (&port->list_buf_used.list, - struct saa7164_user_buffer, list); - -if (ubuf) +if (!list_empty (&port->list_buf_used.list)) mask |=POLLIN |POLLRDNORM ;return mask;
drivers/media/video/saa7164/saa7164-vbi.c +1 -5
@@ -1186,7 +1186,6 @@ static unsigned int fops_poll(struct file *file, poll_table *wait) {struct saa7164_vbi_fh *fh = (struct saa7164_vbi_fh *)file->private_data;struct saa7164_port *port = fh->port; -struct saa7164_user_buffer *ubuf;unsigned int mask =0 ; port->last_poll_msecs_diff = port->last_poll_msecs;
@@ -1219,10 +1218,7 @@ static unsigned int fops_poll(struct file *file, poll_table *wait) }/* Pull the first buffer from the used list */ - ubuf =list_first_entry (&port->list_buf_used.list, - struct saa7164_user_buffer, list); - -if (ubuf) +if (!list_empty (&port->list_buf_used.list)) mask |=POLLIN |POLLRDNORM ;return mask;