diff --git a/usr.sbin/kldxref/kldxref.8 b/usr.sbin/kldxref/kldxref.8 --- a/usr.sbin/kldxref/kldxref.8 +++ b/usr.sbin/kldxref/kldxref.8 @@ -50,14 +50,12 @@ that directory) is removed. .Pp .Nm -ignores files with at least two "."s in the filename, such as -.Pa foo.ko.debug -or -.Pa bar.ko.pkgsave . -Note that this means that modules cannot have names such as -.Pa foo.bar.ko . -This limitation however, has been lived practice since the beginning of -FreeBSD's kernel modules. +only processes files that either have no dots in their name like +.Pa kernel +or that end in +.Dq .ko +like +.Pa foo.ko . .Pp The following options are available: .Bl -tag -width indent diff --git a/usr.sbin/kldxref/kldxref.c b/usr.sbin/kldxref/kldxref.c --- a/usr.sbin/kldxref/kldxref.c +++ b/usr.sbin/kldxref/kldxref.c @@ -842,10 +842,11 @@ continue; /* * Skip files that generate errors like .debug, .symbol and .pkgsave - * by generally skipping all files with 2 dots. + * by generally skipping all files not ending with ".ko" or that have + * no dots in the name (like kernel). */ - dot = strchr(p->fts_name, '.'); - if (dot && strchr(dot + 1, '.') != NULL) + dot = strrchr(p->fts_name, '.'); + if (dot != NULL && strcmp(dot, ".ko") != 0) continue; read_kld(p->fts_path, p->fts_name); }