--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c 2009-08-28 14:01:43.771053173 -0400 +++ /tmp/VBoxGuest-freebsd.c 2009-08-28 16:25:54.000000000 -0400 @@ -154,9 +153,11 @@ */ if (!ppDev) return; - if (dev_stdclone(pszName, NULL, "vboxguest", &iUnit) != 1) + if (strcmp(pszName, "vboxguest") == 0) + iUnit = -1; + else if (dev_stdclone(pszName, NULL, "vboxguest", &iUnit) != 1) return; - if (iUnit >= 256 || iUnit < 0) + if (iUnit >= 256) { Log(("VBoxGuestFreeBSDClone: iUnit=%d >= 256 - rejected\n", iUnit)); return; @@ -393,13 +394,13 @@ struct VBoxGuestDeviceState *pState = device_get_softc(pDevice); /* - * Reverse what we did in VBoxGuestFreeBSDAttach. + * Reserve what we did in VBoxGuestFreeBSDAttach. */ if (g_VBoxGuestFreeBSDEHTag != NULL) - EVENTHANDLER_DEREGISTER(dev_clone, g_VBoxGuestFreeBSDEHTag); - + EVENTHANDLER_DEREGISTER(dev_clone, g_VBoxGuestFreeBSDEHTag); clone_cleanup(&g_pVBoxGuestFreeBSDClones); + VBoxGuestFreeBSDRemoveIRQ(pDevice, pState); if (pState->pVMMDevMemRes)