summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/network.c
diff options
context:
space:
mode:
authorArnaud Patard <rtp@mageia.org>2011-03-18 21:21:26 +0000
committerArnaud Patard <rtp@mageia.org>2011-03-18 21:21:26 +0000
commit2923175afa8b253cffdea00c1087c29e877d7fea (patch)
treea3507f3b193fde9731ecbc49b984faf0da4651e6 /mdk-stage1/network.c
parent0dae133a236a21d79d7292593fe7fc6658b227c6 (diff)
downloaddrakx-2923175afa8b253cffdea00c1087c29e877d7fea.tar
drakx-2923175afa8b253cffdea00c1087c29e877d7fea.tar.gz
drakx-2923175afa8b253cffdea00c1087c29e877d7fea.tar.bz2
drakx-2923175afa8b253cffdea00c1087c29e877d7fea.tar.xz
drakx-2923175afa8b253cffdea00c1087c29e877d7fea.zip
- try to handle the built-in module case before trying to load a module.
Diffstat (limited to 'mdk-stage1/network.c')
-rw-r--r--mdk-stage1/network.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/mdk-stage1/network.c b/mdk-stage1/network.c
index 85704b805..a1af8af0f 100644
--- a/mdk-stage1/network.c
+++ b/mdk-stage1/network.c
@@ -31,6 +31,7 @@
#include <sys/ioctl.h>
#include <sys/mount.h>
#include <stdio.h>
+#include <fcntl.h>
#include <netdb.h>
#include <resolv.h>
#include <sys/utsname.h>
@@ -568,8 +569,15 @@ static enum return_type bringup_networking(struct interface_info * intf)
{
static struct interface_info loopback;
enum return_type results;
-
- my_insmod("af_packet", ANY_DRIVER_TYPE, NULL, 1);
+ int fd;
+
+ /* try to find if module already loaded or built-in to avoid failing */
+ /* badly */
+ fd = open("/proc/net/packet", O_RDONLY);
+ if (fd < 0)
+ my_insmod("af_packet", ANY_DRIVER_TYPE, NULL, 1);
+ else
+ close(fd);
do {
results = configure_wireless(intf->device);