aboutsummaryrefslogtreecommitdiff
path: root/modutils/modprobe.c
diff options
context:
space:
mode:
Diffstat (limited to 'modutils/modprobe.c')
-rw-r--r--modutils/modprobe.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/modutils/modprobe.c b/modutils/modprobe.c
index 3861dd1e3..fe399acfc 100644
--- a/modutils/modprobe.c
+++ b/modutils/modprobe.c
@@ -504,7 +504,7 @@ static struct dep_t *build_dep(void)
/* Only 2.6 has a modules.alias file */
if (ENABLE_FEATURE_2_6_MODULES) {
- /* Parse kernel-declared aliases */
+ /* Parse kernel-declared module aliases */
filename = xasprintf("/lib/modules/%s/modules.alias", un.release);
fd = open(filename, O_RDONLY);
if (fd < 0) {
@@ -518,6 +518,21 @@ static struct dep_t *build_dep(void)
include_conf(&first, &current, buffer, sizeof(buffer), fd);
close(fd);
}
+
+ /* Parse kernel-declared symbol aliases */
+ filename = xasprintf("/lib/modules/%s/modules.symbols", un.release);
+ fd = open(filename, O_RDONLY);
+ if (fd < 0) {
+ /* Ok, that didn't work. Fall back to looking in /lib/modules */
+ fd = open("/lib/modules/modules.symbols", O_RDONLY);
+ }
+ if (ENABLE_FEATURE_CLEAN_UP)
+ free(filename);
+
+ if (fd >= 0) {
+ include_conf(&first, &current, buffer, sizeof(buffer), fd);
+ close(fd);
+ }
}
return first;