On Wed, 22 Nov 2017 15:58:02 +0800 "Liu, Yi L" <yi.l....@linux.intel.com> wrote:
> The init of giommu_list and hostwin_list is missed during container > initialization. > > Signed-off-by: Liu, Yi L <yi.l....@linux.intel.com> > --- > hw/vfio/common.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/hw/vfio/common.c b/hw/vfio/common.c > index 7b2924c..14c5940 100644 > --- a/hw/vfio/common.c > +++ b/hw/vfio/common.c > @@ -990,6 +990,8 @@ static int vfio_connect_container(VFIOGroup *group, > AddressSpace *as, > container = g_malloc0(sizeof(*container)); > container->space = space; > container->fd = fd; > + QLIST_INIT(&container->giommu_list); > + QLIST_INIT(&container->hostwin_list); container is g_malloc0'd above and QLIST_INIT does: #define QLIST_INIT(head) do { \ (head)->lh_first = NULL; \ } while (/*CONSTCOND*/0) So the only net change is the explicit initialization, which is a fair fix, but given the current QLIST implementation is not actually a bug. Let's save it for after QEMU-2.11. Thanks, Alex > if (ioctl(fd, VFIO_CHECK_EXTENSION, VFIO_TYPE1_IOMMU) || > ioctl(fd, VFIO_CHECK_EXTENSION, VFIO_TYPE1v2_IOMMU)) { > bool v2 = !!ioctl(fd, VFIO_CHECK_EXTENSION, VFIO_TYPE1v2_IOMMU);