HEADS UP: device name checking on device registration
Jaakko Heinonen
jh at FreeBSD.org
Thu Oct 7 18:25:02 UTC 2010
Since r213526 device names are checked on device registration. That is,
if you call a make_dev*() function with an invalid device name, a panic
will occur by default. For make_dev_credf(9) or make_dev_p(9) you can
specify the MAKEDEV_CHECKNAME flag to get an error return instead of a
panic.
Invalid names are as follows:
- empty name
- names longer than SPECNAMELEN
- names containing "." or ".." path component
- names ending with '/'
- already existing device names
So, if you see a "bad si_name" panic you may have encountered a driver
bug.
Currently several GEOM classes (notably geom_label) allow to create
devices with invalid names. Below is a link to a patch which converts
g_dev_taste() to use make_dev_p() with MAKEDEV_CHECKNAME flag. It's not
a complete solution and essentially changes the panic to a printf.
http://people.freebsd.org/~jh/patches/geom_dev-checkname.diff
--
Jaakko
More information about the freebsd-current
mailing list