forked from luck/tmp_suning_uos_patched
virtio-input: reset device and detach unused during remove
Spec requires a device reset during cleanup, so do it and avoid warn in virtio core. And detach unused buffers to avoid memory leak. Signed-off-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
74d33293e4
commit
df4198b1e0
|
@ -313,6 +313,7 @@ static int virtinput_probe(struct virtio_device *vdev)
|
|||
static void virtinput_remove(struct virtio_device *vdev)
|
||||
{
|
||||
struct virtio_input *vi = vdev->priv;
|
||||
void *buf;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&vi->lock, flags);
|
||||
|
@ -320,6 +321,9 @@ static void virtinput_remove(struct virtio_device *vdev)
|
|||
spin_unlock_irqrestore(&vi->lock, flags);
|
||||
|
||||
input_unregister_device(vi->idev);
|
||||
vdev->config->reset(vdev);
|
||||
while ((buf = virtqueue_detach_unused_buf(vi->sts)) != NULL)
|
||||
kfree(buf);
|
||||
vdev->config->del_vqs(vdev);
|
||||
kfree(vi);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user