aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlandley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-07-19 21:33:42 +0000
committerlandley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277>2006-07-19 21:33:42 +0000
commit33003133ee87da6dc91ddf4f74ac02d79b9a7a0f (patch)
tree696e6e04adf5cad0711444c2e7b5cd07d13b0651
parentaef93efb5d3e4d46d6f05296cbf858263dddb5d0 (diff)
downloadbusybox-w32-33003133ee87da6dc91ddf4f74ac02d79b9a7a0f.tar.gz
busybox-w32-33003133ee87da6dc91ddf4f74ac02d79b9a7a0f.tar.bz2
busybox-w32-33003133ee87da6dc91ddf4f74ac02d79b9a7a0f.zip
Patch from Yann Morin to look for modules.conf in the right place on 2.6.
Fixes http://bugs.busybox.net/view.php?id=942 git-svn-id: svn://busybox.net/trunk/busybox@15727 69ca8d6d-28ef-0310-b511-8ec308f3f277
-rw-r--r--modutils/modprobe.c38
1 files changed, 23 insertions, 15 deletions
diff --git a/modutils/modprobe.c b/modutils/modprobe.c
index 6211c7d81..a04377180 100644
--- a/modutils/modprobe.c
+++ b/modutils/modprobe.c
@@ -545,28 +545,36 @@ static struct dep_t *build_dep ( void )
545 } 545 }
546 close ( fd ); 546 close ( fd );
547 547
548 /*
549 * First parse system-specific options and aliases
550 * as they take precedence over the kernel ones.
551 */
548 if (!ENABLE_FEATURE_2_6_MODULES 552 if (!ENABLE_FEATURE_2_6_MODULES
549 || ( fd = open ( "/etc/modprobe.conf", O_RDONLY )) < 0 ) 553 || ( fd = open ( "/etc/modprobe.conf", O_RDONLY )) < 0 )
550 if (( fd = open ( "/etc/modules.conf", O_RDONLY )) < 0 ) 554 if (( fd = open ( "/etc/modules.conf", O_RDONLY )) < 0 )
551 if (( fd = open ( "/etc/conf.modules", O_RDONLY )) < 0 ) 555 fd = open ( "/etc/conf.modules", O_RDONLY );
552 return first;
553 556
554 include_conf (&first, &current, buffer, sizeof(buffer), fd); 557 if (fd >= 0) {
555 close(fd); 558 include_conf (&first, &current, buffer, sizeof(buffer), fd);
559 close(fd);
560 }
556 561
557 filename = bb_xasprintf("/lib/modules/%s/modules.alias", un.release); 562 /* Only 2.6 has a modules.alias file */
558 fd = open ( filename, O_RDONLY ); 563 if (ENABLE_FEATURE_2_6_MODULES) {
559 if (ENABLE_FEATURE_CLEAN_UP) 564 /* Parse kernel-declared aliases */
560 free(filename); 565 filename = bb_xasprintf("/lib/modules/%s/modules.alias", un.release);
561 if (fd < 0) { 566 if ((fd = open ( filename, O_RDONLY )) < 0) {
562 /* Ok, that didn't work. Fall back to looking in /lib/modules */ 567 /* Ok, that didn't work. Fall back to looking in /lib/modules */
563 if (( fd = open ( "/lib/modules/modules.alias", O_RDONLY )) < 0 ) { 568 fd = open ( "/lib/modules/modules.alias", O_RDONLY );
564 return first;
565 } 569 }
566 } 570 if (ENABLE_FEATURE_CLEAN_UP)
571 free(filename);
567 572
568 include_conf (&first, &current, buffer, sizeof(buffer), fd); 573 if (fd >= 0) {
569 close(fd); 574 include_conf (&first, &current, buffer, sizeof(buffer), fd);
575 close(fd);
576 }
577 }
570 578
571 return first; 579 return first;
572} 580}