History log of /external/kmod/libkmod/libkmod-internal.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b87d01d6ef87e7f717ed8a9221baeee3c60b571d 29-Sep-2015 Laura Abbott <labbott@fedoraproject.org> modprobe: Update error message when path is missing

Currently, modprobe fails with no output by default if the
search paths it tries are missing:

$ modprobe -S notakernel dm-crypt
$
$ modprobe -S notakernel lkjjweiojo
$

This is fairly cryptic and not at all obvious there is a problem
unless the error code is checked or verbose flags are used.
Update the error message to indicate a problem and print out the
directory that failed.
/external/kmod/libkmod/libkmod-internal.h
fd44a98ae2eb5eb32161088954ab21e58e19dfc4 22-Feb-2015 Harish Jenny K N <harish_kandiga@mentor.com> Fix race while loading modules

usecase: two sd cards are being mounted in parallel at same time on
dual core. example modules which are getting loaded is nls_cp437.
While one module is being loaded , it starts creating sysfs files.
meanwhile on other core, modprobe might return saying the module
is KMOD_MODULE_BUILTIN, which might result in not mounting sd card.

Experiments done to prove the issue in kmod.
Added sleep in kernel module.c at the place of creation of sysfs files.
Then tried `modprobe nls_cp437` from two different shells.
While the first was still waiting for its completion ,
the second one returned saying the module is built-in.

[ Lucas:

The problem is that the creation of /sys/module/<name> and
/sys/module/<name>/initstate are not atomic. There's a small window in
which the directory exists but the initstate file was still not
created.

Built-in modules can be handled by searching the modules.builtin file.
We actually lose some "modules" that create entries in /sys/modules
(e.g. vt) and are not in modules.builtin file: only those that can be
compiled as module are present in this file.

We enforce mod->builtin to always be up-to-date when
kmod_module_get_initstate() is called. This way if the directory
exists but the initstate doesn't, we can be sure this is because the
module is in the "coming" state, i.e. kernel didn't create the file
yet, but since builtin modules were already handled by checking our
index the only reason for that to happen is that we hit the race
condition.

I also added some tweaks to the patch, so we don't repeat the code for builtin
lookup. ]
/external/kmod/libkmod/libkmod-internal.h
f4e8c16291c58b71dfc622c11f3e00c818dcaebb 09-Oct-2014 Lucas De Marchi <lucas.demarchi@intel.com> Move remaining functions from libkmod-util to shared
/external/kmod/libkmod/libkmod-internal.h
0db718edcfca1bdaf1369d3cf3773b52fcea1406 03-Oct-2014 Lucas De Marchi <lucas.demarchi@intel.com> Move hash implementation to shared directory
/external/kmod/libkmod/libkmod-internal.h
8b7189bc25b7becb0e428a74528d8def08bd2f4a 03-Oct-2014 Lucas De Marchi <lucas.demarchi@intel.com> Move missing.h to shared directory
/external/kmod/libkmod/libkmod-internal.h
576dd4393d0deb2f4e050c5d1b96eaafb03bcb2c 03-Oct-2014 Lucas De Marchi <lucas.demarchi@intel.com> Move macro.h to shared directory

It's not really related to libkmod, so move it to a directory in which
we keep common stuff.
/external/kmod/libkmod/libkmod-internal.h
450bd1b4290e0dec65397881a7037090f203045a 31-Mar-2014 Michal Marek <mmarek@suse.cz> 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.
/external/kmod/libkmod/libkmod-internal.h
83b855a6ed7028173e231eab0a39c929a962ddf5 04-Jul-2013 Lucas De Marchi <lucas.demarchi@intel.com> Use "-internal" suffix instead of "-private"
/external/kmod/libkmod/libkmod-internal.h