qdev: Fix QOM unrealize behavior
Since commit
249d41720b7dfbb5951b430b9eefdbee7464f515 (qdev: Prepare
"realized" property) setting realized = true would register the device's
VMStateDescription, but realized = false would not unregister it. Fix that.
Moving the code from unparenting also revealed that we were calling
DeviceClass::init through DeviceClass::realize as interim solution but
DeviceClass::exit still at unparenting time with a realized check.
Make this symmetrical by implementing DeviceClass::unrealize to call it,
while we're setting realized = false in the unparenting path.
The only other unrealize user is mac_nvram, which can safely override it.
Thus, mark DeviceClass::exit as obsolete, new devices should implement
DeviceClass::unrealize instead.
Cc: [email protected]
Signed-off-by: Andreas Färber <[email protected]>
Signed-off-by: Andreas Färber <[email protected]>
Message-id:
1366043650[email protected]
Signed-off-by: Anthony Liguori <[email protected]>