@@ -1130,8 +1130,11 @@ static int kvm_cmd_run_init(int argc, const char **argv)
goto fail;
}
- if (kvm->cfg.virtio_rng)
- virtio_rng__init(kvm);
+ r = virtio_rng__init(kvm);
+ if (r < 0) {
+ pr_err("virtio_rng__init() failed with error %d\n", r);
+ goto fail;
+ }
if (kvm->cfg.balloon)
virtio_bln__init(kvm);
@@ -147,6 +147,9 @@ int virtio_rng__init(struct kvm *kvm)
struct rng_dev *rdev;
int r;
+ if (!kvm->cfg.virtio_rng)
+ return 0;
+
rdev = malloc(sizeof(*rdev));
if (rdev == NULL)
return -ENOMEM;
Make the init/exit of virtio-rng self-contained, so the global init code won't need to check if it was selected or not. Signed-off-by: Sasha Levin <levinsasha928@gmail.com> --- tools/kvm/builtin-run.c | 7 +++++-- tools/kvm/virtio/rng.c | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-)