summaryrefslogtreecommitdiff
path: root/packages/busybox/busybox-1.01/rmmod.patch
blob: 5a557ef35d64cda3c389effafb3f8d123bb59d61 (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
41
42
43
44
Index: modutils/rmmod.c
===================================================================
RCS file: /var/cvs/busybox/modutils/rmmod.c,v
retrieving revision 1.31
diff -u -r1.31 rmmod.c
--- busybox/modutils/rmmod.c	20 Jul 2004 18:36:51 -0000	1.31
+++ busybox/modutils/rmmod.c	10 Dec 2004 22:56:36 -0000
@@ -28,6 +28,7 @@
 #include <fcntl.h>
 #include <string.h>
 #include <sys/syscall.h>
+#include <sys/utsname.h>
 #include "busybox.h"
 
 #ifdef CONFIG_FEATURE_2_6_MODULES
@@ -63,6 +64,16 @@
 	void *buf; /* hold the module names which we ignore but must get */
 	size_t bufsize = 0;
 #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. */
 	while ((n = getopt(argc, argv, "a")) != EOF) {
@@ -109,7 +120,10 @@
 		for (n = optind; n < argc; n++) {
 #ifdef CONFIG_FEATURE_2_6_MODULES
 			char module_name[strlen(argv[n]) + 1];
-			filename2modname(module_name, argv[n]);
+			if (k_version != 4)
+				filename2modname(module_name, argv[n]);
+			else
+				strcpy(module_name, argv[n]);
 #else
 #define module_name		argv[n]
 #endif