[PATCH 19/33] kvm tools: virtio-bln init/exit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Make the init/exit of virtio-balloon self-contained, so the global init code
won't need to check if it was selected or not.

Signed-off-by: Sasha Levin <levinsasha928@xxxxxxxxx>
---
 tools/kvm/builtin-run.c                | 11 +++++++++--
 tools/kvm/include/kvm/virtio-balloon.h |  3 ++-
 tools/kvm/virtio/balloon.c             | 12 +++++++++++-
 3 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c
index ed7babc..ec61696 100644
--- a/tools/kvm/builtin-run.c
+++ b/tools/kvm/builtin-run.c
@@ -1136,8 +1136,11 @@ static int kvm_cmd_run_init(int argc, const char **argv)
 		goto fail;
 	}
 
-	if (kvm->cfg.balloon)
-		virtio_bln__init(kvm);
+	r = virtio_bln__init(kvm);
+	if (r < 0) {
+		pr_err("virtio_rng__init() failed with error %d\n", r);
+		goto fail;
+	}
 
 	if (!kvm->cfg.network)
 		kvm->cfg.network = DEFAULT_NETWORK;
@@ -1287,6 +1290,10 @@ static void kvm_cmd_run_exit(int guest_ret)
 	if (r < 0)
 		pr_warning("virtio_rng__exit() failed with error %d\n", r);
 
+	r = virtio_bln__exit(kvm);
+	if (r < 0)
+		pr_warning("virtio_bln__exit() failed with error %d\n", r);
+
 	r = virtio_console__exit(kvm);
 	if (r < 0)
 		pr_warning("virtio_console__exit() failed with error %d\n", r);
diff --git a/tools/kvm/include/kvm/virtio-balloon.h b/tools/kvm/include/kvm/virtio-balloon.h
index eb49fd4..844a1ba 100644
--- a/tools/kvm/include/kvm/virtio-balloon.h
+++ b/tools/kvm/include/kvm/virtio-balloon.h
@@ -3,6 +3,7 @@
 
 struct kvm;
 
-void virtio_bln__init(struct kvm *kvm);
+int virtio_bln__init(struct kvm *kvm);
+int virtio_bln__exit(struct kvm *kvm);
 
 #endif /* KVM__BLN_VIRTIO_H */
diff --git a/tools/kvm/virtio/balloon.c b/tools/kvm/virtio/balloon.c
index ea64fd4..07852d7 100644
--- a/tools/kvm/virtio/balloon.c
+++ b/tools/kvm/virtio/balloon.c
@@ -243,8 +243,11 @@ struct virtio_ops bln_dev_virtio_ops = (struct virtio_ops) {
 	.get_size_vq		= get_size_vq,
 };
 
-void virtio_bln__init(struct kvm *kvm)
+int virtio_bln__init(struct kvm *kvm)
 {
+	if (!kvm->cfg.balloon)
+		return 0;
+
 	kvm_ipc__register_handler(KVM_IPC_BALLOON, handle_mem);
 	kvm_ipc__register_handler(KVM_IPC_STAT, virtio_bln__print_stats);
 
@@ -256,4 +259,11 @@ void virtio_bln__init(struct kvm *kvm)
 
 	if (compat_id == -1)
 		compat_id = virtio_compat_add_message("virtio-balloon", "CONFIG_VIRTIO_BALLOON");
+
+	return 0;
+}
+
+int virtio_bln__exit(struct kvm *kvm)
+{
+	return 0;
 }
-- 
1.7.12

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux