Robby Workman [Thu, 12 Jan 2012 05:47:11 +0000 (23:47 -0600)]
doc/depmod.sgml: Remove references to legacy map files
Robby Workman [Thu, 12 Jan 2012 05:40:24 +0000 (23:40 -0600)]
doc/depmod.sgml: Remove refs to depmod.conf
Robby Workman [Thu, 12 Jan 2012 05:37:03 +0000 (23:37 -0600)]
doc/depmod.d.sgml: Various touchups; mostly s/depmod.conf/depmod.d/g
Robby Workman [Thu, 12 Jan 2012 06:06:27 +0000 (00:06 -0600)]
doc/modprobe.d.sgml: Various touchups
* change references to "kmod" instead of "module-init-tools"
* remove references to modprobe.conf
Robby Workman [Thu, 12 Jan 2012 06:04:57 +0000 (00:04 -0600)]
doc: Import sgml manpages from module-init-tools repo
Lucas De Marchi [Wed, 11 Jan 2012 23:48:08 +0000 (21:48 -0200)]
modprobe: show if module is in kernel
Now with './tools/modprobe --show-depends ahci' (ahci is builtin) we have the following
output:
$ ./tools/modprobe --show-depends ahci
builtin ahci
Just like modprobe from m-i-t. Previously we had:
$ ./tools/modprobe --show-depends ahci
FATAL: Module ahci not found.
Lucas De Marchi [Wed, 11 Jan 2012 23:22:21 +0000 (21:22 -0200)]
test: add check of module's state
Jan Alexander Steffens (heftig) [Wed, 11 Jan 2012 22:17:38 +0000 (23:17 +0100)]
depmod: Postpone creation of module array
Deleting modules (we have found replacements) invalidates the indices
because the array collapses removed elements, hitting the assertion.
Since we don't make use of the array until the sorting step, build it from
the modules_by_name hash instead.
Lucas De Marchi [Wed, 11 Jan 2012 20:29:55 +0000 (18:29 -0200)]
modprobe: break dependency loop by checking if module is loaded
modprobe doesn't have support for handling dependency loop. That happens
with poorly written softdeps that can introduce a loop. We must deal
with them like it's being done in libkmod.
However, we can break a dependency loop when the dependency was already
inserted. This commit fixes this issue, that happens in the following
scenario:
dependencies:
-------------
modA:
modB: modA
modC: modA
config:
softdep modA post: modB modC
This creates the following loop:
modA
inserted ok
handle post-soft-deps of modA -> modB modC
modB
handle dependencies of modB -> modA
modA is already inserted
handle post-soft-deps of modA -> modB modC
And so on and so forth.
Now we break the loop by checking if module is already inserted, before
handling it. Thus this gives us:
modA
inserted ok
handle post-soft-deps of modA -> modB modC
modB
handle dependencies of modB -> modA
modA is already inserted
inserted ok
modC
handle dependencies of modC -> modA
modA is already inserted
inserted ok
Lucas De Marchi [Wed, 11 Jan 2012 19:54:05 +0000 (17:54 -0200)]
autogen.sh: configure with 3-clicks + paste
Lucas De Marchi [Wed, 11 Jan 2012 17:38:50 +0000 (15:38 -0200)]
modprobe: adhere do coding style
Dave Reisner [Wed, 11 Jan 2012 00:28:30 +0000 (19:28 -0500)]
rmmod: behavior more like m-i-t's rmmod
In line with m-i-t's behavior, we should check to see if each module is:
- loaded
- has any holders
- has a 0 refcnt
Detecting any of these lets us provide a more useful message than the
kernel's EPERM response to delete_module(2).
Additionally, alter the main loop behavior to avoid exiting early on the
first error.
Dave Reisner [Tue, 10 Jan 2012 18:36:27 +0000 (13:36 -0500)]
modprobe: check for EPERM on insertion
Throw an appropriate error when an unprivileged user attempts to load a
module.
Lucas De Marchi [Wed, 11 Jan 2012 02:28:12 +0000 (00:28 -0200)]
config: deprecate 'include' and 'config' commands
Lucas De Marchi [Wed, 11 Jan 2012 02:08:14 +0000 (00:08 -0200)]
Fix error code returned on module removal
Lucas De Marchi [Tue, 10 Jan 2012 18:22:59 +0000 (16:22 -0200)]
build-sys: fix build with zlib/xz after private lib
Lucas De Marchi [Tue, 10 Jan 2012 17:45:14 +0000 (15:45 -0200)]
TODO: add task to modprobe
Lucas De Marchi [Tue, 10 Jan 2012 16:06:24 +0000 (14:06 -0200)]
build-sys: workaround libtool issue with argv[0]
Symlinking tools to kmod doesn't work because argv[0] is not the name of
the symlink, but rather 'kmod' (since libtool's wrapper script calls the
tools/.libs/kmod directly)
Now we create another binary kmod-nolib that is statically linked to
libkmod so we can call the binary directly and do not worry about
LD_LIBRARY_PATH.
Lucas De Marchi [Tue, 10 Jan 2012 13:34:12 +0000 (11:34 -0200)]
build-sys: build tests as part of check phase
Do not unconditionally compile tests, make them as target of 'make
check'. Only those listed in TESTS var are run.
Lucas De Marchi [Tue, 10 Jan 2012 13:15:19 +0000 (11:15 -0200)]
build-sys: create symlinks instead of building separate tools
Lucas De Marchi [Tue, 10 Jan 2012 14:55:13 +0000 (12:55 -0200)]
build-sys: allow building without having gtk-doc installed
Lucas De Marchi [Tue, 10 Jan 2012 17:00:07 +0000 (15:00 -0200)]
config: be reliable againt syntax errors in configs
Lucas De Marchi [Tue, 10 Jan 2012 12:19:01 +0000 (10:19 -0200)]
TODO: add tasks to modprobe
Lucas De Marchi [Mon, 9 Jan 2012 15:32:31 +0000 (13:32 -0200)]
doc: fix out of tree build
Lucas De Marchi [Mon, 9 Jan 2012 15:26:06 +0000 (13:26 -0200)]
build-sys: give recommended configure options for hacking
Lucas De Marchi [Mon, 9 Jan 2012 15:15:46 +0000 (13:15 -0200)]
README: add more information
Lucas De Marchi [Mon, 9 Jan 2012 15:00:28 +0000 (13:00 -0200)]
build-sys: do not run configure in autogen.sh
Lucas De Marchi [Mon, 9 Jan 2012 06:47:40 +0000 (04:47 -0200)]
doc: organize sections
Lucas De Marchi [Mon, 9 Jan 2012 06:20:55 +0000 (04:20 -0200)]
doc: add gtk-doc to generate documentation
Current limitation is horrible no support to sections: we have to to
have separate header files or to maintain the libkmod-sections.txt file.
We are doing the latter.
Lucas De Marchi [Mon, 9 Jan 2012 05:45:19 +0000 (03:45 -0200)]
doc: fix broken links to other functions
Lucas De Marchi [Mon, 9 Jan 2012 05:09:49 +0000 (03:09 -0200)]
doc: fix order of param descriptions
Lucas De Marchi [Mon, 9 Jan 2012 05:08:26 +0000 (03:08 -0200)]
Match param names on header and source code
This is needed by gtk-doc (to be added later) to be able to properly
document the function.
Lucas De Marchi [Mon, 9 Jan 2012 04:35:41 +0000 (02:35 -0200)]
doc: fix comments format
Lucas De Marchi [Mon, 9 Jan 2012 02:40:50 +0000 (00:40 -0200)]
Update copyright
Lucas De Marchi [Sun, 8 Jan 2012 20:08:05 +0000 (18:08 -0200)]
modprobe: fix error path when loading dependencies
demarchi> scenario is the following:
demarchi> modA depends on modB and modC
demarchi> if there's a race when trying to insert a dependency of a module, say
modB, it will stop loading all the modules
demarchi> it should check by "module already loaded error"
demarchi> like it does for modA
Gustavo Sverzut Barbieri [Sun, 8 Jan 2012 15:58:28 +0000 (13:58 -0200)]
modprobe: show is independent from verbose level.
"modprobe --quiet --show-depends" now works.
Lucas De Marchi [Sun, 8 Jan 2012 03:02:29 +0000 (01:02 -0200)]
Replace NAME_MAX with PATH_MAX for module aliases
Module aliases can be bigger than NAME_MAX. So, replace with PATH_MAX
that is bigger enough to hold them.
Technically in some places NAME_MAX would be sufficient (those using
module names only), but they use functions that can be called with
alias. So increase the buffers in these cases to PATH_MAX too.
Lucas De Marchi [Fri, 6 Jan 2012 21:22:41 +0000 (19:22 -0200)]
config: check if opening /proc/cmdline succeeded
Rolf Eike Beer [Fri, 6 Jan 2012 12:33:11 +0000 (13:33 +0100)]
tools/kmod-depmod: fix aliasing warning
Lucas De Marchi [Fri, 6 Jan 2012 12:44:45 +0000 (10:44 -0200)]
Revert "tools/kmod-depmod: fix aliasing warning"
This reverts commit
f63fc9e606449a36d26cc9a99431229e4efacdad. Wrong
author name. I'll apply it again later.
root [Fri, 6 Jan 2012 12:33:11 +0000 (13:33 +0100)]
tools/kmod-depmod: fix aliasing warning
Dave Reisner [Fri, 6 Jan 2012 03:56:54 +0000 (22:56 -0500)]
tools/modprobe: exit non-zero on module not found with --all
Dave Reisner [Fri, 6 Jan 2012 03:56:53 +0000 (22:56 -0500)]
tools/modinfo: exit non-zero on module not found
Lucas De Marchi [Thu, 5 Jan 2012 00:27:58 +0000 (22:27 -0200)]
kmod 3
Lucas De Marchi [Thu, 5 Jan 2012 10:15:51 +0000 (08:15 -0200)]
tools: use basename in help message
Dave Reisner [Thu, 5 Jan 2012 00:05:04 +0000 (19:05 -0500)]
libkmod/hash: check for NULL before freeing hash
Lucas De Marchi [Wed, 4 Jan 2012 23:07:59 +0000 (21:07 -0200)]
Add missing doc for function argument
Lucas De Marchi [Wed, 4 Jan 2012 22:53:10 +0000 (20:53 -0200)]
kmod-depmod: demote messages to WRN when non-critical files are missing
Dave Reisner [Wed, 4 Jan 2012 15:59:49 +0000 (10:59 -0500)]
libkmod: Fix casing in error output
Dave Reisner [Wed, 4 Jan 2012 15:41:50 +0000 (10:41 -0500)]
tools: unify error verbiage and casing
Fix a typo and ensure that we always use "could not" instead of "Could
not" or the conjunction "couldn't".
Lucas De Marchi [Wed, 4 Jan 2012 10:58:19 +0000 (08:58 -0200)]
build-sys: do not install kmod-* tools
Lucas De Marchi [Wed, 4 Jan 2012 10:23:15 +0000 (08:23 -0200)]
file: use log facilities
Don't clutter stderr with messages that might be useful in the log.
Lucas De Marchi [Wed, 4 Jan 2012 10:19:34 +0000 (08:19 -0200)]
file: take a weakref to ctx
Lucas De Marchi [Wed, 4 Jan 2012 10:14:54 +0000 (08:14 -0200)]
config: take a weakref to ctx
Commit "b6a4dfb config: save list of config paths with their timestamps"
removed the weakref to ctx. Add it back.
Lucas De Marchi [Wed, 4 Jan 2012 10:00:45 +0000 (08:00 -0200)]
Add missing static const
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 18:14:57 +0000 (16:14 -0200)]
kmod-depmod: fix replacement of existing modules.
We cannot create a kmod_module for existing module name, it will fail
due existing in the hash table "modules_by_name".
To avoid it, we first delete the existing module, if lower priority,
then add the new one.
kmod_module_new_from_path() is called only when the former module was
deleted or does not exist.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 18:03:06 +0000 (16:03 -0200)]
kmod-depmod: fix comparison of module priority.
This code was never tested, my bad!
* the prefix should be ignored, as it is not stored in cfg_search/override.
* baselen should not include '/'.
* search length should not include '\0'.
* override path should not include cfg->dirname prefix.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 17:58:24 +0000 (15:58 -0200)]
utils/array: add array_remove_at()
remove array element at given position, will be used by depmod.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 17:11:58 +0000 (15:11 -0200)]
kmod-depmod: fix incorrect math finding out end of dirname.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 17:06:08 +0000 (15:06 -0200)]
kmod-depmod: document --config/-C in help output.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 17:04:34 +0000 (15:04 -0200)]
kmod-depmod: add missing trailing \n to log messages.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 16:53:15 +0000 (14:53 -0200)]
elf: zero *array when count is zero.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 16:25:49 +0000 (14:25 -0200)]
libkmod-file: refactor code to avoid ifdef mess.
Refactor code to use pointer to functions, avoiding the previous
Now comp_types defines a magic header to be checked (size and bytes),
with the associated load() and unload() operations. If a header
matches, their operations are used. Otherwise the regular file
operations (mmap/munmap) are used.
File descriptor close is managed by the common code if it's valid
(>=0). If some code steals the file descriptor (eg: gzopen), then they
must change file->fd to -1.
This way the code should be easier to extend and avoid bugs.
Gustavo Sverzut Barbieri [Tue, 3 Jan 2012 16:22:05 +0000 (14:22 -0200)]
utils/read_str_safe(): fix wrong behavior and bugs.
ouch, I did a mess in the original function, fix them:
* on errors (read() < 0), continue reading after the done bytes, not
at position 0.
* read buflen - 1 bytes, so there is always room to store the
trailing \0, as expected by user due behavior of snprintf(),
fgets() and others.
Lucas De Marchi [Sat, 31 Dec 2011 21:41:05 +0000 (19:41 -0200)]
TODO: add task for providing man page
Lucas De Marchi [Sat, 31 Dec 2011 21:29:13 +0000 (19:29 -0200)]
Add test to check kmod_validate_resources
Lucas De Marchi [Sat, 31 Dec 2011 21:28:31 +0000 (19:28 -0200)]
Add call to check if resources are valid
Lucas De Marchi [Sat, 31 Dec 2011 20:53:24 +0000 (18:53 -0200)]
index: save timestamp of each loaded index
Lucas De Marchi [Sat, 31 Dec 2011 20:48:05 +0000 (18:48 -0200)]
config: save list of config paths with their timestamps
Save a list of config paths with their timestamps so they can be checked
later.
Lucas De Marchi [Sat, 31 Dec 2011 14:28:54 +0000 (12:28 -0200)]
util: add helper function to compare timestamps
Lucas De Marchi [Sun, 1 Jan 2012 08:07:46 +0000 (06:07 -0200)]
kmod-modprobe: mimic modprobe when removing deps with usecount=0
Lucas De Marchi [Sun, 1 Jan 2012 07:55:25 +0000 (05:55 -0200)]
Fix leak of kmod_module and fix code style
Lucas De Marchi [Sun, 1 Jan 2012 07:47:17 +0000 (05:47 -0200)]
TODO: add list of things that are different on kmod
Dave Reisner [Sat, 31 Dec 2011 23:02:45 +0000 (18:02 -0500)]
kmodprobe: post-remove module deps with 0 refcnt
Dave Reisner [Sat, 31 Dec 2011 23:02:30 +0000 (18:02 -0500)]
modprobe: use lighter access call instead of stat
Dave Reisner [Sat, 31 Dec 2011 21:51:40 +0000 (16:51 -0500)]
modprobe: remove --list option
This was marked as deprecated in m-i-t's modprobe in favor of find and
basename.
Dave Reisner [Sat, 31 Dec 2011 16:19:55 +0000 (11:19 -0500)]
libkmod-config: remove warning for skipped config files
conf_files_filter_out() already skips these files, but writes to the log
to warn that they'll be ignored in the future.
Lucas De Marchi [Sat, 31 Dec 2011 15:01:55 +0000 (13:01 -0200)]
Use last enum value instead of ARRAY_SIZE
Lucas De Marchi [Sat, 31 Dec 2011 13:21:52 +0000 (11:21 -0200)]
Do not call exported function for mod->name
Name is always available and we don't neet to call a exported function
to get it.
Lucas De Marchi [Sat, 31 Dec 2011 13:15:52 +0000 (11:15 -0200)]
Move function to the right place
Lucas De Marchi [Fri, 30 Dec 2011 16:15:40 +0000 (14:15 -0200)]
Ignore "already loaded" error in module_probe_insert_module()
It also fixes a leak in the error path.
Lucas De Marchi [Fri, 30 Dec 2011 16:13:33 +0000 (14:13 -0200)]
Use errno instead of return value of init_module()
Return -errno instead of the value returned by init_module(). We need to
differentiate between the several errors that might occur, e.g. "module
already loaded", access denied, etc.
Leandro Pereira [Wed, 28 Dec 2011 16:44:35 +0000 (14:44 -0200)]
libkmod-util: getline_wrapped: return NULL when buffer allocation fails
Leandro Pereira [Wed, 28 Dec 2011 17:01:16 +0000 (15:01 -0200)]
Do not forget parenthesis around if (streq(A, B)).
Lucas De Marchi [Wed, 28 Dec 2011 15:33:26 +0000 (13:33 -0200)]
Move libkmod-util.c to convenience util lib
Share more code between tools and libkmod. underscores() in kmod-depmod
can not use the same function as in the lib, so rename it.
Lucas De Marchi [Wed, 28 Dec 2011 14:53:37 +0000 (12:53 -0200)]
Move array implementation from depmode to libkmod-util
Lucas De Marchi [Tue, 27 Dec 2011 21:56:33 +0000 (19:56 -0200)]
tools: kmod: bundle depmod together with the others
Lucas De Marchi [Tue, 27 Dec 2011 21:53:38 +0000 (19:53 -0200)]
Fix header guard
Leandro Pereira [Tue, 27 Dec 2011 20:22:30 +0000 (18:22 -0200)]
kmod tool: don't keep iterating when command has been executed
Lucas De Marchi [Tue, 27 Dec 2011 16:38:26 +0000 (14:38 -0200)]
Move util functions to libkmod-util.c
These allow them to be later shared with tools.
Lucas De Marchi [Tue, 27 Dec 2011 15:27:42 +0000 (13:27 -0200)]
kmod-depmod: use hash implementation from util lib
Lucas De Marchi [Tue, 27 Dec 2011 15:27:01 +0000 (13:27 -0200)]
hash: add iterator
Lucas De Marchi [Tue, 27 Dec 2011 14:26:51 +0000 (12:26 -0200)]
build-sys: create libkmod-util.la convenience lib
Util functions can be shared betweeing libkmod and tools. Start with the
hash implementation.
Lucas De Marchi [Tue, 27 Dec 2011 14:20:35 +0000 (12:20 -0200)]
Copy missing hash functions from kmod-depmod to libkmod
Lucas De Marchi [Tue, 27 Dec 2011 14:13:54 +0000 (12:13 -0200)]
Remove kmod_ prefix from hash implementation
In a future commit, hash implementation will be shared between libkmod
and depmod. kmod_hash is not exported, so remove the namespace.
Lucas De Marchi [Tue, 27 Dec 2011 20:10:19 +0000 (18:10 -0200)]
Log paths if kmod_module_new_from_path() failed
Lucas De Marchi [Tue, 27 Dec 2011 19:32:55 +0000 (17:32 -0200)]
TODO: format and add task
Lucas De Marchi [Tue, 27 Dec 2011 16:18:32 +0000 (14:18 -0200)]
kmod-depmod: Fix leak of dependency vector
Gustavo Sverzut Barbieri [Mon, 26 Dec 2011 15:19:07 +0000 (13:19 -0200)]
kmod-depmod: refactor extension matching array, support XZ.
move the extensions array match to global, conditionally add GZ and XZ
if the support is enabled.
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 13:16:40 +0000 (11:16 -0200)]
kmod-depmod: implement -A (--quick)