On Mon, 14 Mar 2011 17:45:02 +0530, Amit Shah <amit.s...@redhat.com> wrote:
> In the case where a virtio-console port is in use (opened by a program)
> and a virtio-console device is removed, the port is kept around but all
> the virtio-related state is assumed to be gone.
> 
> When the port is finally released (close() called), we call
> device_destroy() on the port's device.  This results in the parent
> device's structures to be freed as well.  This includes the PCI regions
> for the virtio-console PCI device.
> 
> Once this is done, however, virtio_pci_release_dev() kicks in, as the
> last ref to the virtio device is now gone, and attempts to do
> 
>      pci_iounmap(pci_dev, vp_dev->ioaddr);
>      pci_release_regions(pci_dev);
>      pci_disable_device(pci_dev);
> 
> which results in a double-free warning.
> 
> Move the code that releases regions, etc., to the virtio_pci_remove()
> function, and all that's now left in release_dev is the final freeing of
> the vp_dev.
> 
> Signed-off-by: Amit Shah <amit.s...@redhat.com>

Applied.

Thanks,
Rusty.
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization

Reply via email to