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