summaryrefslogtreecommitdiff
path: root/packages/busybox/busybox-1.2.1/rmmod.patch
blob: 20770e0dc4ee78e086ef573668ecbcc4afc7b5c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Index: busybox-1.1.0/modutils/rmmod.c
===================================================================
--- busybox-1.1.0.orig/modutils/rmmod.c	2006-01-11 06:43:56.000000000 +0100
+++ busybox-1.1.0/modutils/rmmod.c	2006-03-14 16:42:14.000000000 +0100
@@ -29,6 +29,7 @@
 #include <string.h>
 #include <sys/utsname.h>
 #include <sys/syscall.h>
+#include <sys/utsname.h>
 #include "busybox.h"
 
 #ifdef CONFIG_FEATURE_2_6_MODULES
@@ -64,6 +65,16 @@
 	   but must get */
 	size_t bufsize = sizeof(bb_common_bufsiz1);
 #endif
+#ifdef CONFIG_FEATURE_2_6_MODULES
+	int k_version = 0;
+	struct utsname myuname;	
+
+	if (uname(&myuname) == 0) {
+		if (myuname.release[0] == '2') {
+			k_version = myuname.release[2] - '0';
+		}
+	}
+#endif
 
 	/* Parse command line. */
 	n = bb_getopt_ulflags(argc, argv, "wfa");
@@ -109,6 +120,10 @@
 			afterslash++;
 		module_name = alloca(strlen(afterslash) + 1);
 		filename2modname(module_name, afterslash);
+		if (k_version != 4)
+ 			filename2modname(module_name, afterslash);
+		else
+			strcpy(module_name, afterslash);
 #else
 #define module_name		argv[n]
 #endif