diff options
Diffstat (limited to 'sys/i386/bios')
-rw-r--r-- | sys/i386/bios/smapi.c | 2 | ||||
-rw-r--r-- | sys/i386/bios/smbios.c | 2 | ||||
-rw-r--r-- | sys/i386/bios/vpd.c | 2 |
3 files changed, 6 insertions, 0 deletions
diff --git a/sys/i386/bios/smapi.c b/sys/i386/bios/smapi.c index e572664..74cf612 100644 --- a/sys/i386/bios/smapi.c +++ b/sys/i386/bios/smapi.c @@ -288,10 +288,12 @@ smapi_modevent (module_t mod, int what, void *arg) case MOD_LOAD: break; case MOD_UNLOAD: + newbus_xlock(); devclass_get_devices(smapi_devclass, &devs, &count); for (i = 0; i < count; i++) { device_delete_child(device_get_parent(devs[i]), devs[i]); } + newbus_xunlock(); break; default: break; diff --git a/sys/i386/bios/smbios.c b/sys/i386/bios/smbios.c index f38d985..37a3b2c 100644 --- a/sys/i386/bios/smbios.c +++ b/sys/i386/bios/smbios.c @@ -230,10 +230,12 @@ smbios_modevent (mod, what, arg) case MOD_LOAD: break; case MOD_UNLOAD: + newbus_xlock(); devclass_get_devices(smbios_devclass, &devs, &count); for (i = 0; i < count; i++) { device_delete_child(device_get_parent(devs[i]), devs[i]); } + newbus_xunlock(); break; default: break; diff --git a/sys/i386/bios/vpd.c b/sys/i386/bios/vpd.c index 246b76d..f816121 100644 --- a/sys/i386/bios/vpd.c +++ b/sys/i386/bios/vpd.c @@ -248,10 +248,12 @@ vpd_modevent (mod, what, arg) case MOD_LOAD: break; case MOD_UNLOAD: + newbus_xlock(); devclass_get_devices(vpd_devclass, &devs, &count); for (i = 0; i < count; i++) { device_delete_child(device_get_parent(devs[i]), devs[i]); } + newbus_xunlock(); break; default: break; |