qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]