diff mbox

[01/38] qdev: document assumption that unrealize is followed by finalize

Message ID 1378211609-16121-2-git-send-email-pbonzini@redhat.com
State New
Headers show

Commit Message

Paolo Bonzini Sept. 3, 2013, 12:32 p.m. UTC
This becomes important when undoing realize's initializations is split
in two places (unrealize and exit).

The way to fix this could be to split realize further into "alloc" (done
once) and "realize" (can be undone).

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/hw/qdev-core.h | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Michael S. Tsirkin Sept. 17, 2013, 9 a.m. UTC | #1
On Tue, Sep 03, 2013 at 02:32:52PM +0200, Paolo Bonzini wrote:
> This becomes important when undoing realize's initializations is split
> in two places (unrealize and exit).
> 
> The way to fix this could be to split realize further into "alloc" (done
> once) and "realize" (can be undone).

Or alloc + init ?

> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  include/hw/qdev-core.h | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
> index 46972f4..d840f06 100644
> --- a/include/hw/qdev-core.h
> +++ b/include/hw/qdev-core.h
> @@ -86,6 +86,10 @@ struct VMStateDescription;
>   * object_initialize() in their own #TypeInfo.instance_init and forward the
>   * realization events appropriately.
>   *
> + * Note that for now it is not possible to unrealize a device and then
> + * re-realize it.  While this may change in the future, it is a valid
> + * assumption for now.
> + *
>   * The @init callback is considered private to a particular bus implementation
>   * (immediate abstract child types of TYPE_DEVICE). Derived leaf types set an
>   * "init" callback on their parent class instead.
> -- 
> 1.8.3.1
>
diff mbox

Patch

diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index 46972f4..d840f06 100644
--- a/include/hw/qdev-core.h
+++ b/include/hw/qdev-core.h
@@ -86,6 +86,10 @@  struct VMStateDescription;
  * object_initialize() in their own #TypeInfo.instance_init and forward the
  * realization events appropriately.
  *
+ * Note that for now it is not possible to unrealize a device and then
+ * re-realize it.  While this may change in the future, it is a valid
+ * assumption for now.
+ *
  * The @init callback is considered private to a particular bus implementation
  * (immediate abstract child types of TYPE_DEVICE). Derived leaf types set an
  * "init" callback on their parent class instead.