platform/upstream/kmod.git
10 years agotestsuite: Add assert_return
Lucas De Marchi [Fri, 6 Jun 2014 05:19:01 +0000 (02:19 -0300)]
testsuite: Add assert_return

Add assert_return to use in testcases instead of assert. The issues
with assert are:
1) It's disabled when NDEBUG is defined
2) Even if it's well supported by testsuite (the parent will
   report the child died) it can't output any meaningful
   error message

10 years agotestsuite: separate testcases on log
Lucas De Marchi [Thu, 5 Jun 2014 20:54:00 +0000 (17:54 -0300)]
testsuite: separate testcases on log

10 years agotestsuite: check for correct error message in detect-loop
Lucas De Marchi [Fri, 30 May 2014 13:26:17 +0000 (10:26 -0300)]
testsuite: check for correct error message in detect-loop

10 years agotestsuite: Fix expected_fail parsing
Lucas De Marchi [Fri, 30 May 2014 13:23:05 +0000 (10:23 -0300)]
testsuite: Fix expected_fail parsing

If a test has expected_fail=true, it means the return code must be
different from 0 *and* the outputs must match. This way it's possible to
check if the error messages are printed as they should.

10 years agotestsuite: Add braces
Lucas De Marchi [Fri, 30 May 2014 13:20:19 +0000 (10:20 -0300)]
testsuite: Add braces

10 years agodepmod: Add better error messages when facing loops
Lucas De Marchi [Fri, 30 May 2014 12:38:26 +0000 (09:38 -0300)]
depmod: Add better error messages when facing loops

Since now depmod fails when there are module loops, let's at least give
better error messages, printing the loops we found. Since we may have
more than 1 loop, just printing the modules that are in loop is not
very clear.

Assuming as an example 2 independent loops, this is how the new messages
compare to the old ones:

Before:
depmod: ERROR: Found 5 modules in dependency cycles!
depmod: ERROR: /tmp/test-kmod//lib/modules/3.14.4-1-ARCH/kernel/moduleE.ko in dependency cycle!
depmod: ERROR: /tmp/test-kmod//lib/modules/3.14.4-1-ARCH/kernel/moduleB.ko in dependency cycle!
depmod: ERROR: /tmp/test-kmod//lib/modules/3.14.4-1-ARCH/kernel/moduleC.ko in dependency cycle!
depmod: ERROR: /tmp/test-kmod//lib/modules/3.14.4-1-ARCH/kernel/moduleD.ko in dependency cycle!
depmod: ERROR: /tmp/test-kmod//lib/modules/3.14.4-1-ARCH/kernel/moduleA.ko in dependency cycle!

After:
depmod: ERROR: Found 5 modules in dependency cycles!
depmod: ERROR: Cycle detected: moduleE -> moduleD -> moduleE
depmod: ERROR: Cycle detected: moduleB -> moduleC -> moduleA -> moduleB

10 years agotestsuite: add test to fail depmod on module loops
Lucas De Marchi [Fri, 30 May 2014 12:36:21 +0000 (09:36 -0300)]
testsuite: add test to fail depmod on module loops

10 years agodepmod: Rename variable to clarify its meaning
Lucas De Marchi [Fri, 30 May 2014 12:01:24 +0000 (09:01 -0300)]
depmod: Rename variable to clarify its meaning

In mod->modnamelen we were actually including the '\0', i.e.
strlen(modname) + 1. So rename it to modnamesz and add a comment in
depmod_module_is_higher_priority() to notice why it's correct since the
new one is really using strlen(modname).

10 years agoFix use-after-free in hash implementation.
Lukas Anzinger [Sun, 18 May 2014 16:40:19 +0000 (18:40 +0200)]
Fix use-after-free in hash implementation.

If a value is added to the hash under a key that already exists the new value
replaces the old value for that key. Since key can be a pointer to data that
is part of value and freed by hash->free_value(), the key must be also
replaced and not only the value. Otherwise key potentially points to freed data.

10 years agoClose /sys/module/$NAME directory if opening /proc/module fails.
Leandro Pereira [Tue, 29 Apr 2014 00:04:48 +0000 (21:04 -0300)]
Close /sys/module/$NAME directory if opening /proc/module fails.

10 years agoFree abspath if kmod_module_new_from_path() fails.
Leandro Pereira [Tue, 29 Apr 2014 00:02:45 +0000 (21:02 -0300)]
Free abspath if kmod_module_new_from_path() fails.

10 years agoFree realnames if kmod_lookup_alias_from_alias_bin() fails
Leandro Pereira [Tue, 29 Apr 2014 00:01:48 +0000 (21:01 -0300)]
Free realnames if kmod_lookup_alias_from_alias_bin() fails

10 years agoEnsure read_long() reads the correct number of bytes from the index
Leandro Pereira [Mon, 28 Apr 2014 23:47:49 +0000 (20:47 -0300)]
Ensure read_long() reads the correct number of bytes from the index

10 years agoBail out of index_mm_open() if fstat() fails
Leandro Pereira [Mon, 28 Apr 2014 23:44:14 +0000 (20:44 -0300)]
Bail out of index_mm_open() if fstat() fails

10 years agodepmod: Make dependency loops be fatal
Lucas De Marchi [Fri, 9 May 2014 11:22:02 +0000 (08:22 -0300)]
depmod: Make dependency loops be fatal

Since the beginning depmod just warned about dependency loops and upon
creation of modules.dep{,.bin} it skipped the modules that were part of
a loop. However just skipping the modules may come as a surprise to
kernel module developers: they will need to try to load the module (or
to pay attention to the log messages) to notice thavt the module has not
been put in the index. Also, differently from module-init-tools we were
not skipping modules that depend on modules with dependency loops,
leading to a segfault in depmod.

So this is a summary of the change in behavior with this patch:

Loop 1)
    A -> B -> C -
    ^           |
    '------------

    Before:
        depmod: WARNING: found 3 modules in dependency cycles!
        depmod: WARNING: /tmp/test-kmod/lib/modules/3.14.2-1-ARCH/kernel/moduleB.ko in dependency cycle!
        depmod: WARNING: /tmp/test-kmod/lib/modules/3.14.2-1-ARCH/kernel/moduleC.ko in dependency cycle!
        depmod: WARNING: /tmp/test-kmod/lib/modules/3.14.2-1-ARCH/kernel/moduleA.ko in dependency cycle!

        return code: 0

    After:
        depmod: ERROR: Found 3 modules in dependency cycles!
        depmod: ERROR: /tmp/test-kmod/lib/modules/3.14.2-1-ARCH/kernel/moduleB.ko in dependency cycle!
        depmod: ERROR: /tmp/test-kmod/lib/modules/3.14.2-1-ARCH/kernel/moduleC.ko in dependency cycle!
        depmod: ERROR: /tmp/test-kmod/lib/modules/3.14.2-1-ARCH/kernel/moduleA.ko in dependency cycle!

        return code: 2

Loop 2)
    A -> B -> C -
         ^      |
         '-------

    Before:
        depmod: WARNING: found 2 modules in dependency cycles!
        depmod: WARNING: /tmp/test-kmod//lib/modules/3.14.2-1-ARCH/kernel/moduleB.ko in dependency cycle!
        depmod: WARNING: /tmp/test-kmod//lib/modules/3.14.2-1-ARCH/kernel/moduleC.ko in dependency cycle!
        Segmentation fault (core dumped)

    After:
        depmod: ERROR: Found 2 modules in dependency cycles!
        depmod: ERROR: /tmp/test-kmod/lib/modules/3.14.2-1-ARCH/kernel/moduleB.ko in dependency cycle!
        depmod: ERROR: /tmp/test-kmod/lib/modules/3.14.2-1-ARCH/kernel/moduleC.ko in dependency cycle!

        return code: 2

The segfault above could be fixed, but let's just fail everything
because dependency cycles should be fixed in the modules rather than
just be skipped in the index.

10 years agoman: fixup spacing/parens in modprobe.d(5)
Joe Lawrence [Tue, 13 May 2014 03:31:10 +0000 (23:31 -0400)]
man: fixup spacing/parens in modprobe.d(5)

10 years agoAdd gitignore to module playground
Lucas De Marchi [Fri, 9 May 2014 11:43:05 +0000 (08:43 -0300)]
Add gitignore to module playground

10 years agoRemove references to systemd from the bash completion file
Marco d'Itri [Sun, 4 May 2014 19:00:43 +0000 (21:00 +0200)]
Remove references to systemd from the bash completion file

And restore the original LGPL disclaimer text.

10 years agotestsuite: Add module playground dir
Lucas De Marchi [Fri, 2 May 2014 15:56:46 +0000 (12:56 -0300)]
testsuite: Add module playground dir

10 years agoMake sure there's NUL byte at the end of strndupa
Lucas De Marchi [Mon, 7 Apr 2014 15:27:11 +0000 (12:27 -0300)]
Make sure there's NUL byte at the end of strndupa

Since strcpy() doesn't ensure we have a NUL byte in the resulting
string, use alloca() + memcpy(). Also make sure we don't evaluate "s"
twice.

10 years agoAdd strndupa to missing.h
Lucas De Marchi [Fri, 4 Apr 2014 11:19:00 +0000 (08:19 -0300)]
Add strndupa to missing.h

10 years agoUpdate .travis.yml
Lucas De Marchi [Mon, 7 Apr 2014 13:55:47 +0000 (10:55 -0300)]
Update .travis.yml

 - Add cython to the dependencies, so it can compile the python bindings
 - Remove unecessary -Wno-error since now we don't use -Werror anymore.

10 years agokmod 17 v17
Lucas De Marchi [Sun, 6 Apr 2014 20:52:44 +0000 (17:52 -0300)]
kmod 17

10 years agotestsuite: Remove duplicate test
Lucas De Marchi [Sun, 6 Apr 2014 20:43:19 +0000 (17:43 -0300)]
testsuite: Remove duplicate test

This partially reverts ad7f175 ("Add test for depmod using search dirs
with same prefix"). Testing it twice in the inverted order doesn't
ensure we get the bug with wrong ordering.

As put by Anssi Hannula <anssi@mageia.org>:

So the bug is triggered only if the shorter name is higher-prio _and_
shorter name is traversed first. If the long name is traversed first,
the bug don't trigger with either "search" directive order (and on my
"make check" runs this is the case).

10 years agobuild-sys: enable python in bootstrap-configure
Lucas De Marchi [Sun, 6 Apr 2014 20:14:23 +0000 (17:14 -0300)]
build-sys: enable python in bootstrap-configure

10 years agotestsuite: Warn if sysconfdir is not /etc
Michal Marek [Fri, 4 Apr 2014 09:30:07 +0000 (11:30 +0200)]
testsuite: Warn if sysconfdir is not /etc

10 years agotestsuite: Do not run tests with *.ko.gz if zlib is not enabled
Michal Marek [Fri, 4 Apr 2014 11:05:49 +0000 (13:05 +0200)]
testsuite: Do not run tests with *.ko.gz if zlib is not enabled

10 years agotestsuite: Uncompress most modules
Michal Marek [Fri, 4 Apr 2014 10:32:16 +0000 (12:32 +0200)]
testsuite: Uncompress most modules

Only keep test-depmod/modules-order-compressed to test compressed module
support.

10 years agoconfig: also parse softdeps from modules
Tom Gundersen [Mon, 31 Mar 2014 13:18:51 +0000 (15:18 +0200)]
config: also parse softdeps from modules

This information can be found in /lib/modules/`uname -r`/modules.softdep, and
has only recently been exported by the kernel.

Also remove the advice about copying modules.softdep to /lib/modules as it is
not clear how to do this correctly with several kernels installed with
potentially conflicting soft dependencies.

10 years agolibkmod: Ignore errors from softdeps
Michal Marek [Mon, 31 Mar 2014 13:18:50 +0000 (15:18 +0200)]
libkmod: Ignore errors from softdeps

Before we had softdeps, the usual idiom was

install foo /sbin/modprobe bar; /sbin/modprobe --ignore-install foo

ignoring errors from the first modprobe invocation. This also matches
the behavior of module-init-tools' implementation of softdep.

10 years agobuild-sys: add hooks to build python bindings
Lucas De Marchi [Mon, 24 Mar 2014 11:27:19 +0000 (08:27 -0300)]
build-sys: add hooks to build python bindings

Add --enable-python configure switch so we build the python bindings. We
also pass version.py through SED_PROCESS macro, so the version is kept
in sync with kmod.

Acked-by: Andy Grover <agrover@redhat.com>
10 years agopython: Remove unused files from import
Lucas De Marchi [Thu, 20 Mar 2014 10:33:40 +0000 (07:33 -0300)]
python: Remove unused files from import

Acked-by: Andy Grover <agrover@redhat.com>
10 years agoMerge branch 'master' of python-kmod
Lucas De Marchi [Mon, 10 Mar 2014 07:23:19 +0000 (04:23 -0300)]
Merge branch 'master' of python-kmod

This is python-kmod is found in git@github.com:agrover/kmod.git
d5b6f22639c077b86659828bcc78dcedc9daaa94

Its history has being rewritten to prepare for a merge:

- Every commit has been prefixed with "python: " in its commit
  message
- s-o-b's have been removed
- Every file has been moved to libkmod/python directory

Some files don't make much sense anymore and are being removed
in this merge.

Acked-by: Andy Grover <agrover@redhat.com>
10 years agopython: Issue #15: resovled by using setuptools_cython
Guy Rozendorn [Tue, 2 Apr 2013 14:46:45 +0000 (17:46 +0300)]
python: Issue #15: resovled by using setuptools_cython

10 years agopython: Issue #15: Cython needs to be in setup_requires
Guy Rozendorn [Tue, 2 Apr 2013 13:46:23 +0000 (16:46 +0300)]
python: Issue #15: Cython needs to be in setup_requires

We need Cython BEFORE installing kmod (done with setup_requires),
and AFTER installation - during runtime (done with install_requires)

10 years agopython: Issue #15 Cython is now a dependency
Guy Rozendorn [Tue, 2 Apr 2013 08:00:22 +0000 (11:00 +0300)]
python: Issue #15 Cython is now a dependency

10 years agopython: update version to 0.9.1
Andy Grover [Mon, 1 Apr 2013 22:24:41 +0000 (15:24 -0700)]
python: update version to 0.9.1

10 years agopython: Issue #13 skipping building extensions on non-Linux platforms
Guy Rozendorn [Sun, 31 Mar 2013 10:25:30 +0000 (13:25 +0300)]
python: Issue #13 skipping building extensions on non-Linux platforms

10 years agopython: Make kmod.modprobe() raise an error if no modules found
Andy Grover [Tue, 12 Feb 2013 00:55:11 +0000 (16:55 -0800)]
python: Make kmod.modprobe() raise an error if no modules found

Add 'quiet' option to override.

Add docstring.

10 years agopython: Add self as maintainer to setup.py
Andy Grover [Tue, 18 Dec 2012 22:47:37 +0000 (14:47 -0800)]
python: Add self as maintainer to setup.py

10 years agopython: Correct building for python 2.6
Andy Grover [Tue, 18 Dec 2012 18:56:53 +0000 (10:56 -0800)]
python: Correct building for python 2.6

Reported-by: Oz Nahum Tiram <nahumoz@gmail.com>
10 years agopython: add docstring to insert and remove methods
Oz [Sun, 16 Dec 2012 22:27:09 +0000 (23:27 +0100)]
python: add docstring to insert and remove methods

10 years agopython: add docstring to rmmod
Oz [Sun, 16 Dec 2012 22:23:31 +0000 (23:23 +0100)]
python: add docstring to rmmod

10 years agopython: update version to 0.9
Andy Grover [Fri, 14 Dec 2012 17:34:25 +0000 (09:34 -0800)]
python: update version to 0.9

10 years agopython: Update README
Andy Grover [Fri, 14 Dec 2012 17:27:36 +0000 (09:27 -0800)]
python: Update README

Last update changed API slightly:
* loaded_modules renamed to modules
* returns a module object instead of (name, size)

10 years agopython: MANIFEST.in: add AUTHORS to distibuted source files.
W. Trevor King [Sat, 20 Oct 2012 01:57:18 +0000 (21:57 -0400)]
python: MANIFEST.in: add AUTHORS to distibuted source files.

10 years agopython: Ran update-copyright.py.
W. Trevor King [Sat, 20 Oct 2012 01:56:02 +0000 (21:56 -0400)]
python: Ran update-copyright.py.

10 years agopython: .update-copyright.conf: update to pipe separators.
W. Trevor King [Sat, 20 Oct 2012 01:54:20 +0000 (21:54 -0400)]
python: .update-copyright.conf: update to pipe separators.

This brings the config file up to speed with the following
update-copyright commit:

  commit 3c68a1a48419d8b2bbc2ce0e7f1700b996ec30e9
  Author: W. Trevor King <wking@tremily.us>
  Date:   Fri Oct 19 21:52:48 2012 -0400

    project: for consistency, also separate ignored paths with pipes.

10 years agopython: .update-copyright.conf: add MANIFEST.in to ignored files.
W. Trevor King [Sat, 20 Oct 2012 01:31:00 +0000 (21:31 -0400)]
python: .update-copyright.conf: add MANIFEST.in to ignored files.

10 years agopython: .update-copyright.conf: add Red Hat alias for Andy Grover.
W. Trevor King [Sat, 20 Oct 2012 01:25:46 +0000 (21:25 -0400)]
python: .update-copyright.conf: add Red Hat alias for Andy Grover.

He seems to be assigning copyright of files he writes to Red Hat.
Avoiding .mailmap so the git log will still attribute changes to him.
I'm not sure which name should go in the AUTHORS file.

10 years agopython: .update-copyright.conf: add README.rst to ignored files.
W. Trevor King [Sat, 20 Oct 2012 01:22:33 +0000 (21:22 -0400)]
python: .update-copyright.conf: add README.rst to ignored files.

10 years agopython: .mailmap: consolidate Andy Grover email addresses.
W. Trevor King [Sat, 20 Oct 2012 01:02:25 +0000 (21:02 -0400)]
python: .mailmap: consolidate Andy Grover email addresses.

10 years agopython: .update-copyright.conf: add copyright configuration.
W. Trevor King [Sat, 20 Oct 2012 00:16:21 +0000 (20:16 -0400)]
python: .update-copyright.conf: add copyright configuration.

Use my external update-copyright package to maintain copyright blurbs.

http://pypi.python.org/pypi/update-copyright/

10 years agopython: module: fix versions -> info typo in Module._info_get() error message.
W. Trevor King [Fri, 19 Oct 2012 13:10:53 +0000 (09:10 -0400)]
python: module: fix versions -> info typo in Module._info_get() error message.

10 years agopython: Initialize Kmod.mod_dir to None in __cinit__().
W. Trevor King [Fri, 19 Oct 2012 11:49:16 +0000 (07:49 -0400)]
python: Initialize Kmod.mod_dir to None in __cinit__().

10 years agopython: Use an OrderedDict for Module.info (preserving modinfo ordering).
W. Trevor King [Fri, 19 Oct 2012 11:18:58 +0000 (07:18 -0400)]
python: Use an OrderedDict for Module.info (preserving modinfo ordering).

10 years agopython: Add Module.info attribute.
W. Trevor King [Fri, 19 Oct 2012 05:07:42 +0000 (01:07 -0400)]
python: Add Module.info attribute.

10 years agopython: Use Cython's libc.errno for EEXIST.
W. Trevor King [Fri, 19 Oct 2012 04:50:21 +0000 (00:50 -0400)]
python: Use Cython's libc.errno for EEXIST.

10 years agopython: Add Module.versions attribute.
W. Trevor King [Fri, 19 Oct 2012 04:47:51 +0000 (00:47 -0400)]
python: Add Module.versions attribute.

10 years agopython: README.rst: add .rst symlink for GitHub.
W. Trevor King [Fri, 19 Oct 2012 04:20:31 +0000 (00:20 -0400)]
python: README.rst: add .rst symlink for GitHub.

10 years agopython: README: mention Cython dependency.
W. Trevor King [Fri, 19 Oct 2012 04:11:17 +0000 (00:11 -0400)]
python: README: mention Cython dependency.

10 years agopython: README: cleanup reStructuredText syntax.
W. Trevor King [Fri, 19 Oct 2012 04:10:20 +0000 (00:10 -0400)]
python: README: cleanup reStructuredText syntax.

10 years agopython: Add missing copyright blurbs.
W. Trevor King [Fri, 19 Oct 2012 04:08:00 +0000 (00:08 -0400)]
python: Add missing copyright blurbs.

10 years agopython: Add docstrings to kmod.kmod and kmod.kmod.Kmod.
W. Trevor King [Fri, 19 Oct 2012 04:07:39 +0000 (00:07 -0400)]
python: Add docstrings to kmod.kmod and kmod.kmod.Kmod.

10 years agopython: MANIFEST.in: add missing source to the sdist tarball.
W. Trevor King [Fri, 19 Oct 2012 04:00:53 +0000 (00:00 -0400)]
python: MANIFEST.in: add missing source to the sdist tarball.

10 years agopython: Add additional out Module attributes (path, refcnt, ...).
W. Trevor King [Fri, 19 Oct 2012 03:57:30 +0000 (23:57 -0400)]
python: Add additional out Module attributes (path, refcnt, ...).

10 years agopython: Convert to Cython.
W. Trevor King [Fri, 19 Oct 2012 03:30:30 +0000 (23:30 -0400)]
python: Convert to Cython.

With Cython we get easier memory handling and Python 3 compatibility.

10 years agopython: update FSF address in COPYING and COPYING.LESSER
Andy Grover [Tue, 17 Apr 2012 18:35:30 +0000 (11:35 -0700)]
python: update FSF address in COPYING and COPYING.LESSER

Please FSF, never move again.

10 years agopython: whitespace
Andy Grover [Mon, 19 Mar 2012 04:53:26 +0000 (21:53 -0700)]
python: whitespace

10 years agopython: add proper error handling to loaded_modules()
Andy Grover [Mon, 19 Mar 2012 04:49:07 +0000 (21:49 -0700)]
python: add proper error handling to loaded_modules()

We need to check the result of basically all Py* calls and cleanup
properly if they fail.

10 years agopython: Improve README's description of kmod
Andy Grover [Tue, 13 Mar 2012 22:06:37 +0000 (15:06 -0700)]
python: Improve README's description of kmod

Based on text from kmod's README.

10 years agopython: Make setup.py version match version in .c
Andy Grover [Tue, 13 Mar 2012 22:01:03 +0000 (15:01 -0700)]
python: Make setup.py version match version in .c

10 years agopython: Add README
Andy Grover [Tue, 13 Mar 2012 22:00:37 +0000 (15:00 -0700)]
python: Add README

10 years agopython: More cleanup and renaming of stuff. Add docstrings.
Andy Grover [Tue, 13 Mar 2012 07:42:22 +0000 (00:42 -0700)]
python: More cleanup and renaming of stuff. Add docstrings.

10 years agopython: Add support for listing loaded modules, modprobe, rmmod
Andy Grover [Tue, 13 Mar 2012 06:16:35 +0000 (23:16 -0700)]
python: Add support for listing loaded modules, modprobe, rmmod

And other misc. cleanups and changes.

10 years agopython: use c99 init for struct init
Andy Grover [Mon, 12 Mar 2012 17:41:51 +0000 (10:41 -0700)]
python: use c99 init for struct init

move casts of pyobject -> kmodobject to the functions from the struct
init.

10 years agopython: a skeleton that compiles
Andy Grover [Sun, 11 Mar 2012 00:51:49 +0000 (16:51 -0800)]
python: a skeleton that compiles

10 years agopython: initial checkin
Andy Grover [Sat, 10 Mar 2012 01:15:42 +0000 (17:15 -0800)]
python: initial checkin

10 years agobuild-sys: try harder to shut up compiler wrt strict-aliasing
Lucas De Marchi [Tue, 25 Mar 2014 02:50:24 +0000 (23:50 -0300)]
build-sys: try harder to shut up compiler wrt strict-aliasing

With -Wstrict-aliasing=2 we get the following warning:

libkmod/libkmod-signature.c:124:20: note: in expansion of macro 'get_unaligned'
  sig_len = be32toh(get_unaligned(&modsig->sig_len));

However there's nothing wrong with it. modsig->sig_len is uint32_t and
get_unaligned in this case returns uint32_t. There's notstrict aliasing
violation.

10 years agolibkmod: Fix unaligned access
Lucas De Marchi [Mon, 24 Mar 2014 17:33:50 +0000 (14:33 -0300)]
libkmod: Fix unaligned access

From Jan Engelhardt:

Program received signal SIGBUS, Bus error.
[Switching to process 11100]
0x00035278 in kmod_module_signature_info (file=0x4eeb8, sig_info=0xffffc254)
    at libkmod/libkmod-signature.c:124
124             sig_len = be32toh(modsig->sig_len);
(gdb) p modsig
$1 = (const struct module_signature *) 0xf7dfe143

modsig->sig_len can be unaligned if modsig is unaligned, so the padding
in the struct has no effect since we are mapping it to the mem buffer.

10 years agobuild-sys: Remove -Werror from CFLAGS
Lucas De Marchi [Mon, 24 Mar 2014 10:58:32 +0000 (07:58 -0300)]
build-sys: Remove -Werror from CFLAGS

Just let the warnings be emmited, but don't fail on them.

10 years agobuild-sys: Remove bogus line causing warning
Lucas De Marchi [Thu, 20 Mar 2014 12:50:12 +0000 (09:50 -0300)]
build-sys: Remove bogus line causing warning

./configure: line 14316: xyes: command not found

We are not using have_manpages, so remove it.

10 years agoAdd test for depmod using search dirs with same prefix
Lucas De Marchi [Wed, 19 Mar 2014 12:15:59 +0000 (09:15 -0300)]
Add test for depmod using search dirs with same prefix

Test depmod with search dirs "foo" and "foobar". Previously to 49b33c1
("depmod: do not allow partial matches with "search" directive") we were
failing this test due to matching the prefix without checking if
it's the full dir name.

We are adding 2 tests here in order to catch the case we only pass the
test due to processing the directories in a favourable order.

10 years agodepmod: do not allow partial matches with "search" directive
Anssi Hannula [Tue, 18 Mar 2014 23:26:00 +0000 (01:26 +0200)]
depmod: do not allow partial matches with "search" directive

Currently e.g. "search foo foobar built-in" will cause unpredictable
results if baz.ko is in both foo/ and foobar/, since "foo" in search may
match both of those directories and the preferred module therefore
depends on processing order.

Fix the code to ensure that the match is performed on full pathname
components only.

10 years agoAdd test for simple search order in depmod
Lucas De Marchi [Wed, 19 Mar 2014 10:59:38 +0000 (07:59 -0300)]
Add test for simple search order in depmod

10 years agodepmod: fix debug print parameter order
Anssi Hannula [Tue, 18 Mar 2014 23:26:01 +0000 (01:26 +0200)]
depmod: fix debug print parameter order

10 years agolibkmod-elf: Fix check by class in get_modversions()
Lucas De Marchi [Fri, 7 Mar 2014 04:17:10 +0000 (01:17 -0300)]
libkmod-elf: Fix check by class in get_modversions()

Commit 51c409b ("Cache the offset of crc") unintentinally changed the
comparison "if (elf->class & KMOD_ELF_32)" to
"if (elf->class == KMOD_ELF_32)".

This has been reported by Serge Voilokov <serge0x76@gmail.com>:

On Raspberry PI elf->class equals KMOD_ELF_32|KMOD_ELF_LSB so
valid condition should be (elf->class & KMOD_ELF_32) instead of
(elf->class == KMOD_ELF_32).

This fixes "modprobe --dump-modversions" failing on 32b systems.

10 years agotestsuite: Fix uname() during glibc startup
Michal Marek [Thu, 6 Mar 2014 17:03:46 +0000 (18:03 +0100)]
testsuite: Fix uname() during glibc startup

In a specific configuration (chroot with the linux32 personality), the
modprobe_install_cmd_loop test failed, because the bash process handling
the install command segfaulted. The backtrace showed a uname() call
during libpthread initialization, at which point the environ pointer
hadn't been initialized yet:

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x080c1591 in getenv (name=<optimized out>,
    name@entry=0xf775f850 "TESTSUITE_UNAME_R") at getenv.c:81
81       for (i = 0, len = strlen (name); environ[i]; i++)
(gdb) bt
#0  0x080c1591 in getenv (name=<optimized out>,
    name@entry=0xf775f850 "TESTSUITE_UNAME_R") at getenv.c:81
#1  0xf775f754 in uname (u=u@entry=0xff946350) at testsuite/uname.c:32
#2  0xf74ffc6c in is_smp_system ()
    at ../nptl/sysdeps/unix/sysv/linux/i386/smp.h:39
#3  __pthread_initialize_minimal_internal () at nptl-init.c:460
#4  0xf74fe32c in _init () at ../sysdeps/i386/crti.S:74
#5  0x00000000 in ?? ()
(gdb) p environ
$1 = (char **) 0x0

I don't know why it only happend in the chroot, but glibc can call its
own functions and impose any restrictions before main() is started, so
we have to adapt.

Also, do not return error if there is an environment, but the
environment variable is not found. If uname() is called by kmod, then
the respective test will simply fail later. If it's something else
calling uname(), then we do not want to disturb the program.

10 years agoman: use systemd as example instead of udev
Lucas De Marchi [Thu, 6 Mar 2014 05:47:05 +0000 (02:47 -0300)]
man: use systemd as example instead of udev

Nowadays udev doesn't create nodes in /dev anymore. This role is rather
taken by systemd-tmpfiles on early boot so reference it generically as
systemd.

10 years agoman: clarify the support to modules.dep file
Lucas De Marchi [Thu, 6 Mar 2014 05:46:27 +0000 (02:46 -0300)]
man: clarify the support to modules.dep file

10 years agobuild-sys: Do not require xsltproc for installation of man pages
Lucas De Marchi [Mon, 24 Feb 2014 13:52:58 +0000 (10:52 -0300)]
build-sys: Do not require xsltproc for installation of man pages

Same reason as found in this commit to systemd:

commit 4ca39b280fce3c60d2fdecbd478fd9bf7f9d3e64
Author: Mike Gilbert <floppym@gentoo.org>
Date:   Sun Feb 23 11:21:13 2014 -0500

    configure: Do not require xsltproc for installation of man pages

    The release tarballs ship with pre-generated man pages, so we do not
    need xsltproc for a typical end-user build.

    Developers will probably have xsltproc anyway, but if not they will now
    encounter a build-time failure instead of an error in configure.

10 years agobuild-sys: add small redirecting Makefiles
Lucas De Marchi [Thu, 6 Mar 2014 04:51:33 +0000 (01:51 -0300)]
build-sys: add small redirecting Makefiles

These redirecting makefiles simplifies compiling from some editors and
when CWD is not the root of the source tree. This is similar to what was
introduced in systemd in 340d89e ("build-sys: add small redirecting
Makefiles to simplify compilation from within emacs")

10 years agotestsuite: add test for '.' correctly parsed in param's value
Lucas De Marchi [Thu, 6 Mar 2014 04:36:02 +0000 (01:36 -0300)]
testsuite: add test for '.' correctly parsed in param's value

In kcmdline it's possible to have a dot in the param's value. The
support for this was added in 66f3228 ("libkmod: Add support for '.' in
module parameter on kcmdline") and is needed to correctly support some
modules that depend on it.

This test was added in order to make sure the commit  aa87854
("libkmod-config: Only match dot before '=' in /proc/cmdline") didn't
break it. Although that commit  message says it's allowing to match a
dot before '=' it's actually enforcing the first part of the string to
be always in the format "<module-name>.param". Dots after '=' are still
correctly allowed.

10 years agotestsuite: add test to ignore unrelated strings in kcmdline
Lucas De Marchi [Thu, 6 Mar 2014 04:24:32 +0000 (01:24 -0300)]
testsuite: add test to ignore unrelated strings in kcmdline

Strings unrelated to modules and modprobe should be ignored and not
appear in the output of "modprobe -c".

This adds a test for the fix provided in aa87854 ("libkmod-config: Only
match dot before '=' in /proc/cmdline").

10 years agotestsuite: give a more suitable description to test
Lucas De Marchi [Thu, 6 Mar 2014 04:14:12 +0000 (01:14 -0300)]
testsuite: give a more suitable description to test

We are not only checking if those options are correctly parsed from
kcmdline, but if in fact they are being passed to the final
(f)init_module call. This is why we use 'modprobe --show-depends'
instead of the simpler 'modprobe -c'.

10 years agotestsuite: add test for kcmdline params with no value
Lucas De Marchi [Thu, 6 Mar 2014 04:09:30 +0000 (01:09 -0300)]
testsuite: add test for kcmdline params with no value

Use "modprobe -c" to dump the configuration. Since we configure our
rootfs to have only a /proc/cmdline file, this should dump the knowledge
we have from its parsed content.

Test if <module>.option, without any value is correctly parsed, as fixed
in commit 493dc65 ("libkmod: Fix getting param with no value from kcmdline")

10 years agolibkmod-config: Only match dot before '=' in /proc/cmdline
Michal Marek [Wed, 5 Mar 2014 12:27:41 +0000 (13:27 +0100)]
libkmod-config: Only match dot before '=' in /proc/cmdline

Otherwise, we also parse strings like

  BOOT_IMAGE=/boot/vmlinuz-3.12.12-57.g5f654cf-default

In practice, this is not a problem, because there is no module named
BOOT_IMAGE=/boot/vmlinuz-3. It just disturbs in modprobe -c output.

10 years agolibkmod-config,depmod: Accept special files as configuration files, too
Michal Marek [Tue, 4 Mar 2014 15:51:25 +0000 (16:51 +0100)]
libkmod-config,depmod: Accept special files as configuration files, too

If we can open it and read it, it's good enough for us. Otherwise, we
cannot use -C /dev/null to skip the system configuration for instance:

$ ./tools/modprobe -C /dev/null -c
libkmod: ERROR libkmod/libkmod-config.c:821 conf_files_list: unsupported
file mode /dev/null: 0x21b6
...

10 years agolibkmod-module: Simplify kmod_module_insert_module()
Michal Marek [Fri, 28 Feb 2014 12:05:32 +0000 (13:05 +0100)]
libkmod-module: Simplify kmod_module_insert_module()

Store the file and elf pointer in the kmod_module structure and have it
freed together with the module.

10 years agoAdd some tests for kernels without finit_module(2)
Michal Marek [Fri, 28 Feb 2014 12:05:31 +0000 (13:05 +0100)]
Add some tests for kernels without finit_module(2)