Hello all, https://cgit.freebsd.org/src/commit/sbin/ifconfig?id=2c24ad3377a6f584e484656db8390e4eb7cfc119 https://reviews.freebsd.org/D37873 Since this commit replaced the general silent fail for any kind of kdload error with a hard (exit) fail, except for ENOENT - ifconfig fails hard (exit) even in case the user has not even the permission to launch the syscall to kldload. - /* - * Try to load the module. But ignore failures, because ifconfig can't - * infer the names of all drivers (eg mlx4en(4)). - */ - (void) kldload(ifkind); + /* Try to load the module. */ + if (kldload(ifkind) < 0) { + switch (errno) { + case ENOENT: + /* + * Ignore ENOENT, because ifconfig can't infer the + * names of all drivers (eg mlx4en(4)). + */ + break; + default: + err(1, "kldload(%s)", ifkind); + } + } Was this intentional or can we add nother exception for informal msg without (hard) exit here? Thank you! Michael
proposal for a fix https://github.com/freebsd/freebsd-src/pull/638
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=520590881667b4536e6861c710a80353a0564334 commit 520590881667b4536e6861c710a80353a0564334 Author: Alan Somers <asomers@FreeBSD.org> AuthorDate: 2023-01-20 17:17:21 +0000 Commit: Alan Somers <asomers@FreeBSD.org> CommitDate: 2023-01-20 17:17:21 +0000 Revert "ifconfig: abort if loading a module fails other than for ENOENT" This reverts commit 2c24ad3377a6f584e484656db8390e4eb7cfc119. This change causes some commands to fail, for example when working with renamed interfaces or when trying to list a nonexistent interface by name. PR: 269042 Reported by: dbaio, Michael Paepcke <bugs.fbsd@paepcke.de> MFC with: 2c24ad3377a6f584e484656db8390e4eb7cfc119 sbin/ifconfig/ifconfig.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-)
Many thanks for the quick response! I'm convinced that D37873 is an improvement! The silent fail works for me and maybe others, but is not real/stable solution. Seems ifconfig is missing the glue code to figure out the correct parent node. Thank you, Michael!