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)
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 12:31:55 +0000 (10:31 -0200)]
kmod-depmod: implement -F and -E options.
Read System.map and Module.symvers from kernel built, then be able to
report unknown symbols.
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 03:45:23 +0000 (01:45 -0200)]
update TODO
depmod was done, and without map support
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 01:21:48 +0000 (23:21 -0200)]
kmod-depmod: dump modules.dep.bin
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 01:21:09 +0000 (23:21 -0200)]
kmod-depmod: dump modules.alias.bin
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 01:20:44 +0000 (23:20 -0200)]
kmod-depmod: dump modules.symbols.bin
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 01:19:22 +0000 (23:19 -0200)]
kmod-depmod: dump modules.builtin.bin
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 01:16:20 +0000 (23:16 -0200)]
kmod-depmod: add utility functions to be used by binary dumps.
Binary dumps will use functions to convert alias to underscores and
paths to module names.
Gustavo Sverzut Barbieri [Sat, 24 Dec 2011 01:11:41 +0000 (23:11 -0200)]
kmod-depmod: copy code from module-init-tools/index.c
Copy code from module-init-tools/index.c, the following copyright applies:
Copyright (C) 2008 Alan Jenkins <alan-jenkins@tuffmail.co.uk>.
Gustavo Sverzut Barbieri [Fri, 23 Dec 2011 22:53:16 +0000 (20:53 -0200)]
kmod-depmod: dump deps.
Gustavo Sverzut Barbieri [Fri, 23 Dec 2011 03:43:01 +0000 (01:43 -0200)]
kmod-depmod: dump aliases
Gustavo Sverzut Barbieri [Fri, 23 Dec 2011 03:37:07 +0000 (01:37 -0200)]
kmod-depmod: dump softdeps.
Gustavo Sverzut Barbieri [Fri, 23 Dec 2011 03:27:28 +0000 (01:27 -0200)]
kmod-depmod: dump modules.symbols
note that the hash algorithm is different thus the output order will
be different as well.
to compare the outputs, sort the files:
depmod -n | grep '^alias symbol:' | sort > /tmp/orig
kmod-depmod -n | grep '^alias symbol:' | sort > /tmp/new
diff /tmp/orig /tmp/new
Gustavo Sverzut Barbieri [Fri, 23 Dec 2011 02:55:33 +0000 (00:55 -0200)]
kmod-depmod: dump devname
first try to dump files: modules.devname.
Gustavo Sverzut Barbieri [Thu, 22 Dec 2011 22:23:11 +0000 (20:23 -0200)]
kmod-depmod: initial code (no files generated, untested)
this is the initial code for depmod, it should:
* use configuration from /run/depmod.d, /etc/depmod.d, /lib/depmod.d
* respect overrides and searches
* resolve symbols and dependencies
* break circular dependencies (dependency loops)
* --errsyms: print out modules with unresolved symbols and incorrect crc
* --symbol-prefix: respect architecture symbol prefix
it will not:
* --quick: does not do quick mode
* --warn: does not warn on duplicates
* --filesyms: does not load symbols from map file
* --symvers: does not load symbol versions from map file
* dump files: does not dump any files at the moment.
it is highly untested, then I appreciate your help with real world
scenarios using overrides and searches. To get output run with -vvvvvv.
next version should fill in the gaps and at least generate the files
Lucas De Marchi [Mon, 26 Dec 2011 18:06:50 +0000 (16:06 -0200)]
Add test for probe insert
Lucas De Marchi [Tue, 27 Dec 2011 13:40:10 +0000 (11:40 -0200)]
Add implementation of modprobe's insertion
Treat module insertion as modprobe does: look for (soft-)dependencies, run
install commands, apply blacklist.
The difference with the blacklist is that it's applied to all modules,
including the dependencies. If you want to apply a blacklist only on the
module it's better to call the filter function by yourself.
This implementation detects loops caused by poorly written
soft-dependencies and fail gracefully, printing the loop to the log.
Lucas De Marchi [Tue, 27 Dec 2011 12:15:40 +0000 (10:15 -0200)]
Do not cache softdeps list
This might include a circular dependency which would screw up the
refcounting because there's an internal reference.
Lucas De Marchi [Tue, 27 Dec 2011 06:51:05 +0000 (04:51 -0200)]
Allow to internally get dependencies without copying list
Lucas De Marchi [Mon, 26 Dec 2011 15:53:32 +0000 (13:53 -0200)]
build-sys: remove unneeded _SOURCES var
Lucas De Marchi [Sat, 24 Dec 2011 12:50:47 +0000 (10:50 -0200)]
Add functions to get ctx blacklists
Lucas De Marchi [Tue, 27 Dec 2011 04:46:12 +0000 (02:46 -0200)]
Fix kmod_list_remove_n_latest()
It only worked because n was always 1. kmod_list_remove returns a
pointer to the next element, relative to the removed one. Therefore we
need to always get a pointer to the last.