We rely on the following things:
- module dependancies took care that all necessary modules have been loaded automatically
- requesting a module was successful
This causes problems if these assumptions are not correct. For example:
- Users who work with insmod rather than modprobe could have missed out a required module. Although we suggest to use modprobe to avoid such problems we should still check that everything is ok. Failting to do so (which is the current situation) might cause kernel oopses, which is bad from the pov of usability.
- Requested modules might be loaded successfully (request_module returns with 0), but the module might fail to initialize and unload itself as a result. Such cases wouldn't be noticed so far, probably resulting in kernel oopses or other errors.
We need to find a way to make sure that a module we rely on is really loaded and handle the situation in a clean way if this is not the case. The inter-module support functions might be suited for this task.