From 28e22d4baed2d10d8ed0640d05e054fecfc71286 Mon Sep 17 00:00:00 2001 From: Jing Zhang Date: Tue, 18 Jul 2017 03:49:25 +0200 Subject: vfio/ccw: allocate irq info with the right size When allocating memory for the vfio_irq_info parameter of the VFIO_DEVICE_GET_IRQ_INFO ioctl, we used the wrong size. Let's fix it by using the right size. Reviewed-by: Dong Jia Shi Signed-off-by: Jing Zhang Signed-off-by: Dong Jia Shi Message-Id: <20170718014926.44781-2-bjsdjshi@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck --- hw/vfio/ccw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'hw') diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c index 12d0262..8d97b53 100644 --- a/hw/vfio/ccw.c +++ b/hw/vfio/ccw.c @@ -168,7 +168,7 @@ static void vfio_ccw_register_io_notifier(VFIOCCWDevice *vcdev, Error **errp) return; } - argsz = sizeof(*irq_set); + argsz = sizeof(*irq_info); irq_info = g_malloc0(argsz); irq_info->index = VFIO_CCW_IO_IRQ_INDEX; irq_info->argsz = argsz; -- cgit v1.1 From 6a79dd463164e37aa14f5d24dc8107017a6eeaab Mon Sep 17 00:00:00 2001 From: Dong Jia Shi Date: Tue, 18 Jul 2017 03:49:26 +0200 Subject: vfio/ccw: fix initialization of the Object DeviceState pointer in the common base-device Commit 7da624e2 ("vfio: Test realized when using VFIOGroup.device_list iterator") introduced a pointer to the Object DeviceState in the VFIO common base-device and skipped non-realized devices as we iterate VFIOGroup.device_list. While it missed to initialize the pointer for the vfio-ccw case. Let's fix it. Fixes: 7da624e2 ("vfio: Test realized when using VFIOGroup.device_list iterator") Cc: Alex Williamson Reviewed-by: Halil Pasic Signed-off-by: Dong Jia Shi Reviewed-by: Alex Williamson Message-Id: <20170718014926.44781-3-bjsdjshi@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck --- hw/vfio/ccw.c | 1 + 1 file changed, 1 insertion(+) (limited to 'hw') diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c index 8d97b53..a8baadf 100644 --- a/hw/vfio/ccw.c +++ b/hw/vfio/ccw.c @@ -338,6 +338,7 @@ static void vfio_ccw_realize(DeviceState *dev, Error **errp) vcdev->vdev.type = VFIO_DEVICE_TYPE_CCW; vcdev->vdev.name = g_strdup_printf("%x.%x.%04x", cdev->hostid.cssid, cdev->hostid.ssid, cdev->hostid.devid); + vcdev->vdev.dev = dev; QLIST_FOREACH(vbasedev, &group->device_list, next) { if (strcmp(vbasedev->name, vcdev->vdev.name) == 0) { error_setg(&err, "vfio: subchannel %s has already been attached", -- cgit v1.1