summaryrefslogtreecommitdiff
path: root/packages/busybox/busybox-1.01/rmmod.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/busybox/busybox-1.01/rmmod.patch')
-rw-r--r--packages/busybox/busybox-1.01/rmmod.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/packages/busybox/busybox-1.01/rmmod.patch b/packages/busybox/busybox-1.01/rmmod.patch
new file mode 100644
index 0000000000..5a557ef35d
--- /dev/null
+++ b/packages/busybox/busybox-1.01/rmmod.patch
@@ -0,0 +1,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