diff options
author | Amit Shah <amit.shah@redhat.com> | 2011-09-09 14:30:39 +0530 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2011-09-09 12:58:16 -0500 |
commit | 8a7d552cb3684570491a5ecaa8b78818404ed2fb (patch) | |
tree | 8e6c66860acefd6cb86a8aa7feb864038ec97020 | |
parent | e89720b116131938fe3d4931302f69a28249c934 (diff) |
balloon: Disassociate handlers from balloon device on unplug
When a balloon device gets unplugged, allow the balloon handlers to be
freed.
Reported-by: Shaolong Hu <shu@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r-- | balloon.c | 10 | ||||
-rw-r--r-- | balloon.h | 1 |
2 files changed, 11 insertions, 0 deletions
@@ -52,6 +52,16 @@ int qemu_add_balloon_handler(QEMUBalloonEvent *event_func, return 0; } +void qemu_remove_balloon_handler(void *opaque) +{ + if (balloon_opaque != opaque) { + return; + } + balloon_event_fn = NULL; + balloon_stat_fn = NULL; + balloon_opaque = NULL; +} + static int qemu_balloon(ram_addr_t target) { if (!balloon_event_fn) { @@ -22,6 +22,7 @@ typedef void (QEMUBalloonStatus)(void *opaque, MonitorCompletion cb, int qemu_add_balloon_handler(QEMUBalloonEvent *event_func, QEMUBalloonStatus *stat_func, void *opaque); +void qemu_remove_balloon_handler(void *opaque); void monitor_print_balloon(Monitor *mon, const QObject *data); int do_info_balloon(Monitor *mon, MonitorCompletion cb, void *opaque); |