Re: [PATCH] virtio_pci: Prevent double-free of pci regions after device hot-unplug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 14 Mar 2011 17:45:02 +0530, Amit Shah <amit.shah@xxxxxxxxxx> 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.shah@xxxxxxxxxx>

Applied.

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


[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux