The branch main has been updated by asomers:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=2c24ad3377a6f584e484656db8390e4eb7cfc119

commit 2c24ad3377a6f584e484656db8390e4eb7cfc119
Author:     Alan Somers <[email protected]>
AuthorDate: 2022-12-26 02:06:21 +0000
Commit:     Alan Somers <[email protected]>
CommitDate: 2023-01-10 02:56:18 +0000

    ifconfig: abort if loading a module fails other than for ENOENT
    
    If "ifconfig create" tries to load a kernel module, and the module
    exists but can't be loaded, fail the command with a useful error
    message.  This is helpful, for example, when trying to create a cloned
    interface in a vnet jail.  But ignore ENOENT, because sometimes ifconfig
    can't correctly guess the name of the required kernel module.
    
    MFC after:      2 weeks
    Reviewed by:    jhb
    Differential Revision: https://reviews.freebsd.org/D37873
---
 sbin/ifconfig/ifconfig.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c
index 462d543125c4..120207a6927e 100644
--- a/sbin/ifconfig/ifconfig.c
+++ b/sbin/ifconfig/ifconfig.c
@@ -1719,11 +1719,19 @@ ifmaybeload(const char *name)
                }
        }
 
-       /*
-        * 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);
+               }
+       }
 }
 
 static struct cmd basic_cmds[] = {

Reply via email to