[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Fix for qemu crash on assertion error when addi
From: |
Ma, Stephen B. |
Subject: |
Re: [Qemu-devel] [PATCH] Fix for qemu crash on assertion error when adding PCI passthru device. |
Date: |
Sun, 17 Jun 2012 06:26:33 +0000 |
Michael,
Thanks for the review. I added the unparent to the qdev_free.
---
hw/qdev.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/hw/qdev.c b/hw/qdev.c
index d2dc28b..ed1328d 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -264,6 +264,7 @@ void qdev_init_nofail(DeviceState *dev)
/* Unlink device from bus and free the structure. */
void qdev_free(DeviceState *dev)
{
+ object_unparent(OBJECT(dev));
object_delete(OBJECT(dev));
}
--
1.7.1
-----Original Message-----
From: Michael S. Tsirkin [mailto:address@hidden
Sent: Tuesday, June 12, 2012 1:27 AM
To: Ma, Stephen B.
Cc: 'address@hidden'
Subject: Re: [PATCH] Fix for qemu crash on assertion error when adding PCI
passthru device.
On Tue, Jun 12, 2012 at 04:31:20AM +0000, Ma, Stephen B. wrote:
> diff --git a/hw/qdev.c b/hw/qdev.c
> index 6a8f6bd..d2dc28b 100644
> --- a/hw/qdev.c
> +++ b/hw/qdev.c
> @@ -139,7 +139,7 @@ DeviceState *qdev_try_create(BusState *bus, const char
> *type)
> /* Initialize a device. Device properties should be set before calling
> this function. IRQs and MMIO regions should be connected/mapped after
> calling this function.
> - On failure, destroy the device and return negative value.
> + On failure, return a negative value.
> Return 0 on success. */
> int qdev_init(DeviceState *dev)
> {
Yes, I agree. qdev_init did now allocate the device so
it should not free it.
> @@ -150,7 +150,6 @@ int qdev_init(DeviceState *dev)
>
> rc = dc->init(dev);
> if (rc < 0) {
> - qdev_free(dev);
> return rc;
> }
>
Another thing we need to fix is unparent the device in
qdev_free.
--
MST