diff --git a/sys/dev/fdc/fdc.c b/sys/dev/fdc/fdc.c index c0fd5a235b38..d9012500a9df 100644 --- a/sys/dev/fdc/fdc.c +++ b/sys/dev/fdc/fdc.c @@ -1101,10 +1101,14 @@ fd_attach(device_t dev) int typemynor; int typesize; #endif + static int cdevsw_add_done = 0; fd = device_get_softc(dev); - cdevsw_add(&fd_cdevsw); /* XXX */ + if (!cdevsw_add_done) { + cdevsw_add(&fd_cdevsw); /* XXX */ + cdevsw_add_done++; + } make_dev(&fd_cdevsw, (fd->fdu << 6), UID_ROOT, GID_OPERATOR, 0640, "rfd%d", fd->fdu); diff --git a/sys/isa/fd.c b/sys/isa/fd.c index c0fd5a235b38..d9012500a9df 100644 --- a/sys/isa/fd.c +++ b/sys/isa/fd.c @@ -1101,10 +1101,14 @@ fd_attach(device_t dev) int typemynor; int typesize; #endif + static int cdevsw_add_done = 0; fd = device_get_softc(dev); - cdevsw_add(&fd_cdevsw); /* XXX */ + if (!cdevsw_add_done) { + cdevsw_add(&fd_cdevsw); /* XXX */ + cdevsw_add_done++; + } make_dev(&fd_cdevsw, (fd->fdu << 6), UID_ROOT, GID_OPERATOR, 0640, "rfd%d", fd->fdu);