• G
    vfio-ccw: introduce vfio_ccw_get_device() · c96f2c2a
    Greg Kurz 提交于
    A recent patch fixed leaks of the dynamically allocated vcdev->vdev.name
    field in vfio_ccw_realize(), but we now have three freeing sites for it.
    This is unfortunate and seems to indicate something is wrong with its
    life cycle.
    
    The root issue is that vcdev->vdev.name is set before vfio_get_device()
    is called, which theoretically prevents to call vfio_put_device() to
    do the freeing. Well actually, we could call it anyway  because
    vfio_put_base_device() is a nop if the device isn't attached, but this
    would be confusing.
    
    This patch hence moves all the logic of attaching the device, including
    the "already attached" check, to a separate vfio_ccw_get_device() function,
    counterpart of vfio_put_device(). While here, vfio_put_device() is renamed
    to vfio_ccw_put_device() for consistency.
    Signed-off-by: NGreg Kurz <groug@kaod.org>
    Message-Id: <152326891065.266543.9487977590811413472.stgit@bahia.lan>
    Signed-off-by: NCornelia Huck <cohuck@redhat.com>
    c96f2c2a
ccw.c 13.4 KB