|
@@ -213,11 +213,10 @@ static const struct virtio_config_ops virtio_pci_config_ops = {
|
|
|
|
|
|
static void virtio_pci_release_dev(struct device *_d)
|
|
|
{
|
|
|
- /*
|
|
|
- * No need for a release method as we allocate/free
|
|
|
- * all devices together with the pci devices.
|
|
|
- * Provide an empty one to avoid getting a warning from core.
|
|
|
- */
|
|
|
+ struct virtio_device *vdev = dev_to_virtio(_d);
|
|
|
+ struct virtio_pci_device *vp_dev = to_vp_device(vdev);
|
|
|
+
|
|
|
+ kfree(vp_dev);
|
|
|
}
|
|
|
|
|
|
/* the PCI probing function */
|
|
@@ -311,5 +310,4 @@ void virtio_pci_legacy_remove(struct pci_dev *pci_dev)
|
|
|
pci_iounmap(pci_dev, vp_dev->ioaddr);
|
|
|
pci_release_regions(pci_dev);
|
|
|
pci_disable_device(pci_dev);
|
|
|
- kfree(vp_dev);
|
|
|
}
|