Index: sys/dev/agp/agp.c =================================================================== --- sys/dev/agp/agp.c +++ sys/dev/agp/agp.c @@ -205,8 +205,9 @@ int agp_generic_attach(device_t dev) { + struct make_dev_args mdargs; struct agp_softc *sc = device_get_softc(dev); - int i; + int error, i; u_int memsize; /* @@ -250,11 +251,20 @@ TAILQ_INIT(&sc->as_memory); sc->as_nextid = 1; - sc->as_devnode = make_dev(&agp_cdevsw, - 0, UID_ROOT, GID_WHEEL, 0600, "agpgart"); - sc->as_devnode->si_drv1 = dev; + make_dev_args_init(&mdargs); + mdargs.mda_flags = MAKEDEV_CHECKNAME; + mdargs.mda_devsw = &agp_cdevsw; + mdargs.mda_uid = UID_ROOT; + mdargs.mda_gid = GID_WHEEL; + mdargs.mda_mode = 0600; + mdargs.mda_si_drv1 = sc; + mdargs.mda_si_drv2 = NULL; - return 0; + error = make_dev_s(&mdargs, &sc->as_devnode, "agpgart"); + if (error != 0) + agp_free_res(dev); + + return error; } void