diff --git a/drivers/nfc/virtual_ncidev.c b/drivers/nfc/virtual_ncidev.c index bb76c7c7cc82..2c575969cfeb 100644 --- a/drivers/nfc/virtual_ncidev.c +++ b/drivers/nfc/virtual_ncidev.c @@ -96,10 +96,9 @@ static ssize_t virtual_ncidev_read(struct file *file, char __user *buf, } skb_pull(vdev->send_buff, actual_len); - if (vdev->send_buff->len == 0) { - consume_skb(vdev->send_buff); - vdev->send_buff = NULL; - } + kfree_skb(vdev->send_buff); + vdev->send_buff = NULL; + mutex_unlock(&vdev->mtx); return actual_len;