diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index 212a667820dfa9de04457270e3938782c5c6af2b..49411b722f1967a0e4246c7a13ac89ac3ceb5908 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -134,7 +134,7 @@ static int aim_close(struct inode *inode, struct file *filp) } mutex_unlock(&channel->io_mutex); - while (0 != kfifo_out((struct kfifo *)&channel->fifo, &mbo, 1)) + while (kfifo_out((struct kfifo *)&channel->fifo, &mbo, 1)) most_put_mbo(mbo); if (channel->keep_mbo) most_put_mbo(channel->stacked_mbo); @@ -232,7 +232,7 @@ aim_read(struct file *filp, char __user *buf, size_t count, loff_t *offset) channel->keep_mbo = false; goto start_copy; } - while ((0 == kfifo_out(&channel->fifo, &mbo, 1)) + while ((!kfifo_out(&channel->fifo, &mbo, 1)) && (channel->dev)) { if (filp->f_flags & O_NONBLOCK) return -EAGAIN;