diff options
author | Amit Shah <amit.shah@redhat.com> | 2011-07-27 12:28:19 +0530 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2011-08-04 16:43:09 -0500 |
commit | 6c6ec1821a2631b21e680051e2dedaa1be5b83dc (patch) | |
tree | 9b97d249f540bea9130e0f110cef2400f58ccd0c /balloon.c | |
parent | d4443cb616a62619b3b133c44094c3b056ecd3b0 (diff) |
balloon: Don't allow multiple balloon handler registrations
Multiple balloon devices don't make sense; disallow more than one
registration attempt to register handlers.
Signed-off-by: Amit Shah <amit.shah@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'balloon.c')
-rw-r--r-- | balloon.c | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -36,12 +36,20 @@ static QEMUBalloonEvent *balloon_event_fn; static QEMUBalloonStatus *balloon_stat_fn; static void *balloon_opaque; -void qemu_add_balloon_handler(QEMUBalloonEvent *event_func, - QEMUBalloonStatus *stat_func, void *opaque) +int qemu_add_balloon_handler(QEMUBalloonEvent *event_func, + QEMUBalloonStatus *stat_func, void *opaque) { + if (balloon_event_fn || balloon_stat_fn || balloon_opaque) { + /* We're already registered one balloon handler. How many can + * a guest really have? + */ + error_report("Another balloon device already registered"); + return -1; + } balloon_event_fn = event_func; balloon_stat_fn = stat_func; balloon_opaque = opaque; + return 0; } static int qemu_balloon(ram_addr_t target) |