diff --git a/fsdev/qemu-fsdev-opts.c b/fsdev/qemu-fsdev-opts.c
index 0b4619f44f..88a4ac3251 100644
--- a/fsdev/qemu-fsdev-opts.c
+++ b/fsdev/qemu-fsdev-opts.c
@@ -83,4 +83,4 @@ static void fsdev_register_config(void)
     qemu_add_opts(&qemu_fsdev_opts);
     qemu_add_opts(&qemu_virtfs_opts);
 }
-machine_init(fsdev_register_config);
+opts_init(fsdev_register_config);
diff --git a/hw/acpi/core.c b/hw/acpi/core.c
index 3d9e5c4a02..31ead6490f 100644
--- a/hw/acpi/core.c
+++ b/hw/acpi/core.c
@@ -67,7 +67,7 @@ static void acpi_register_config(void)
     qemu_add_opts(&qemu_acpi_opts);
 }
 
-machine_init(acpi_register_config);
+opts_init(acpi_register_config);
 
 static int acpi_checksum(const uint8_t *data, int len)
 {
diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
index 3b5f9bd534..1362e79b9b 100644
--- a/hw/smbios/smbios.c
+++ b/hw/smbios/smbios.c
@@ -320,7 +320,7 @@ static void smbios_register_config(void)
     qemu_add_opts(&qemu_smbios_opts);
 }
 
-machine_init(smbios_register_config);
+opts_init(smbios_register_config);
 
 static void smbios_validate_table(void)
 {
diff --git a/include/qemu/module.h b/include/qemu/module.h
index 85fafa2e79..2370708445 100644
--- a/include/qemu/module.h
+++ b/include/qemu/module.h
@@ -41,14 +41,14 @@ static void __attribute__((constructor)) do_qemu_init_ ## function(void)    \
 
 typedef enum {
     MODULE_INIT_BLOCK,
-    MODULE_INIT_MACHINE,
+    MODULE_INIT_OPTS,
     MODULE_INIT_QAPI,
     MODULE_INIT_QOM,
     MODULE_INIT_MAX
 } module_init_type;
 
 #define block_init(function) module_init(function, MODULE_INIT_BLOCK)
-#define machine_init(function) module_init(function, MODULE_INIT_MACHINE)
+#define opts_init(function) module_init(function, MODULE_INIT_OPTS)
 #define qapi_init(function) module_init(function, MODULE_INIT_QAPI)
 #define type_init(function) module_init(function, MODULE_INIT_QOM)
 
diff --git a/ui/input-linux.c b/ui/input-linux.c
index 0bc0405ec6..2cf5d4990c 100644
--- a/ui/input-linux.c
+++ b/ui/input-linux.c
@@ -388,4 +388,4 @@ static void input_linux_register_config(void)
 {
     qemu_add_opts(&qemu_input_linux_opts);
 }
-machine_init(input_linux_register_config);
+opts_init(input_linux_register_config);
diff --git a/ui/spice-core.c b/ui/spice-core.c
index a68a665a9a..e1179258d0 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -945,4 +945,4 @@ static void spice_register_config(void)
 {
     qemu_add_opts(&qemu_spice_opts);
 }
-machine_init(spice_register_config);
+opts_init(spice_register_config);
diff --git a/ui/vnc.c b/ui/vnc.c
index 729f630e3a..9494a19ecf 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -3875,4 +3875,4 @@ static void vnc_register_config(void)
 {
     qemu_add_opts(&qemu_vnc_opts);
 }
-machine_init(vnc_register_config);
+opts_init(vnc_register_config);
diff --git a/vl.c b/vl.c
index 7a28982eaa..40ed4d0cb9 100644
--- a/vl.c
+++ b/vl.c
@@ -3021,6 +3021,7 @@ int main(int argc, char **argv, char **envp)
     qemu_add_opts(&qemu_icount_opts);
     qemu_add_opts(&qemu_semihosting_config_opts);
     qemu_add_opts(&qemu_fw_cfg_opts);
+    module_call_init(MODULE_INIT_OPTS);
 
     runstate_init();
 
@@ -3033,7 +3034,6 @@ int main(int argc, char **argv, char **envp)
     QLIST_INIT (&vm_change_state_head);
     os_setup_early_signal_handling();
 
-    module_call_init(MODULE_INIT_MACHINE);
     cpu_model = NULL;
     snapshot = 0;
     cyls = heads = secs = 0;