diff options
| author | Mark Johnston <markj@FreeBSD.org> | 2025-01-09 14:49:34 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2025-01-09 14:49:34 +0000 |
| commit | 4a46ece6c6a90f18effbfae7ddef79b41ef43eec (patch) | |
| tree | 5fb60286cd0c2027e1e7cd247d1cfd7c7260cde2 /sys/arm64 | |
| parent | 7c94d515db900401a339cd26861856c8fefb3086 (diff) | |
Diffstat (limited to 'sys/arm64')
| -rw-r--r-- | sys/arm64/vmm/vmm.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/arm64/vmm/vmm.c b/sys/arm64/vmm/vmm.c index 808df5e599ac..77c565e37264 100644 --- a/sys/arm64/vmm/vmm.c +++ b/sys/arm64/vmm/vmm.c @@ -361,21 +361,26 @@ vmm_handler(module_t mod, int what, void *arg) switch (what) { case MOD_LOAD: - /* TODO: if (vmm_is_hw_supported()) { */ error = vmmdev_init(); if (error != 0) break; error = vmm_init(); if (error == 0) vmm_initialized = true; + else + (void)vmmdev_cleanup(); break; case MOD_UNLOAD: - /* TODO: if (vmm_is_hw_supported()) { */ error = vmmdev_cleanup(); if (error == 0 && vmm_initialized) { error = vmmops_modcleanup(); - if (error) + if (error) { + /* + * Something bad happened - prevent new + * VMs from being created + */ vmm_initialized = false; + } } break; default: |
