aboutsummaryrefslogtreecommitdiffstats
path: root/package/busybox/patches/910-insmod-q-flag.patch
blob: 6002f20f1b55713e92c0a3a8e46153574fda783a (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
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -139,7 +139,7 @@ int insmod_main(int argc, char **argv) M
 int insmod_main(int argc UNUSED_PARAM, char **argv)
 {
 	char *filename;
-	int rc;
+	int rc, opt;
 
 	/* Compat note:
 	 * 2.6 style insmod has no options and required filename
@@ -149,10 +149,8 @@ int insmod_main(int argc UNUSED_PARAM, c
 	 * or in $MODPATH.
 	 */
 
-	IF_FEATURE_2_4_MODULES(
-		getopt32(argv, INSMOD_OPTS INSMOD_ARGS);
-		argv += optind - 1;
-	);
+	opt = getopt32(argv, INSMOD_OPTS, NULL, NULL);
+	argv += optind - 1;
 
 	filename = *++argv;
 	if (!filename)
@@ -163,7 +161,7 @@ int insmod_main(int argc UNUSED_PARAM, c
 		goto done;
 
 	rc = bb_init_module(g_filename, parse_cmdline_module_options(argv, /*quote_spaces:*/ 0));
-	if (rc)
+	if (rc && !(opt & INSMOD_OPT_SILENT))
 		bb_error_msg("can't insert '%s': %s", filename, moderror(rc));
 	free (g_filename);