diff options
author | Eric Andersen <andersen@codepoet.org> | 2001-01-24 23:59:50 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2001-01-24 23:59:50 +0000 |
commit | 86f3d5bad6ec3280d247c0484f90ed78e35e32c3 (patch) | |
tree | f05c1c845b6a27d93e10761684f182024c046848 /insmod.c | |
parent | 54e9457920733c523f2983d106ca0f10ace05221 (diff) |
Bug fix and small create_module cleanup from Larry Doolittle to
fix insmod, since I broke var=value args when I getopt'ified it.
Diffstat (limited to 'insmod.c')
-rw-r--r-- | insmod.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -78,7 +78,7 @@ #ifndef MODUTILS_MODULE_H static const int MODUTILS_MODULE_H = 1; -#ident "$Id: insmod.c,v 1.38 2001/01/24 23:34:48 andersen Exp $" +#ident "$Id: insmod.c,v 1.39 2001/01/24 23:59:50 andersen Exp $" /* This file contains the structures used by the 2.0 and 2.1 kernels. We do not use the kernel headers directly because we do not wish @@ -284,7 +284,7 @@ int delete_module(const char *); #ifndef MODUTILS_OBJ_H static const int MODUTILS_OBJ_H = 1; -#ident "$Id: insmod.c,v 1.38 2001/01/24 23:34:48 andersen Exp $" +#ident "$Id: insmod.c,v 1.39 2001/01/24 23:59:50 andersen Exp $" /* The relocatable object is manipulated using elfin types. */ @@ -3039,6 +3039,9 @@ extern int insmod_main( int argc, char **argv) } obj_allocate_commons(f); + /* done with the module name, on to the optional var=value arguments */ + ++optind; + if (optind < argc) { if (m_has_modinfo ? !new_process_module_arguments(f, argc - optind, argv + optind) @@ -3058,11 +3061,8 @@ extern int insmod_main( int argc, char **argv) m_size = obj_load_size(f); - errno = 0; m_addr = create_module(m_name, m_size); - switch (errno) { - case 0: - break; + if (m_addr==-1) switch (errno) { case EEXIST: error_msg("A module named %s already exists\n", m_name); goto out; |