diff --git a/drivers/uacce/uacce.c b/drivers/uacce/uacce.c index 582ec65e159f7df4f59a58331871313efeb0c71e..e8e6f6d77d6a8f2d9f7ca3bfa70b06facd040ab4 100644 --- a/drivers/uacce/uacce.c +++ b/drivers/uacce/uacce.c @@ -635,7 +635,6 @@ static int uacce_fops_flush(struct file *filep, fl_owner_t id) { struct uacce_queue *q = filep->private_data; struct uacce *uacce = q->uacce; - filep->private_data = NULL; /* * It is different between CI and kernel-dev here, so delete list @@ -648,6 +647,9 @@ static int uacce_fops_flush(struct file *filep, fl_owner_t id) list_del(&q->q_dev); mutex_unlock(&uacce->q_lock); + /* filep->private_date is still used by above uacce_fops_fasync */ + filep->private_data = NULL; + return uacce_queue_drain(q); }