vfio/pci: Cleanup vfio_early_setup_msix() error path
commitb5bd049fa907bccc4600ad1855e1c9c0e62f0be3
authorAlex Williamson <alex.williamson@redhat.com>
Wed, 23 Sep 2015 19:04:43 +0000 (23 13:04 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Wed, 23 Sep 2015 19:04:43 +0000 (23 13:04 -0600)
treeb10963c488576acae8f57839d396d4adb7187833
parentd451008e0fdf7fb817c791397e7999d5f3687e58
vfio/pci: Cleanup vfio_early_setup_msix() error path

With the addition of the Chelsio quirk we have an error path out of
vfio_early_setup_msix() that doesn't free the allocated VFIOMSIXInfo
struct.  This doesn't introduce a leak as it still gets freed in the
vfio_put_device() path, but it's complicated and sloppy to rely on
that.  Restructure to free the allocated data on error and only link
it into the vdev on success.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Reported-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
hw/vfio/pci.c