From 6bf52b615d78542e41e684438c844af1fa4fb36e Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Mon, 9 Jan 2017 09:48:58 +0100
Subject: [PATCH] modprobe-small: build fixes

Was throwing some build errors:

CONFIG_MODPROBE_SMALL=y
CONFIG_DEPMOD=y
CONFIG_LSMOD=y
CONFIG_MODINFO=y
CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y

error: unused variable 'exitcode'

modutils/modprobe-small.c: In function 'modprobe_main':
modutils/modprobe-small.c:1060: error: control reaches end of non-void function

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 modutils/modprobe-small.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/modutils/modprobe-small.c b/modutils/modprobe-small.c
index 12e09938a..75b36f748 100644
--- a/modutils/modprobe-small.c
+++ b/modutils/modprobe-small.c
@@ -58,8 +58,8 @@
 
 #define DEPFILE_BB CONFIG_DEFAULT_DEPMOD_FILE".bb"
 
-#define ONLY_APPLET (ENABLE_MODPROBE + ENABLE_DEPMOD + ENABLE_INSMOD \
-  + ENABLE_LSMOD + ENABLE_RMMOD <= 1)
+#define MOD_APPLET_CNT (ENABLE_MODPROBE + ENABLE_DEPMOD + ENABLE_INSMOD + ENABLE_LSMOD + ENABLE_RMMOD)
+#define ONLY_APPLET (MOD_APPLET_CNT <= 1)
 #define is_modprobe (ENABLE_MODPROBE && (ONLY_APPLET || applet_name[0] == 'm'))
 #define is_depmod   (ENABLE_DEPMOD   && (ONLY_APPLET || applet_name[0] == 'd'))
 #define is_insmod   (ENABLE_INSMOD   && (ONLY_APPLET || applet_name[0] == 'i'))
@@ -933,7 +933,9 @@ The following options are useful for people managing distributions:
 int modprobe_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int modprobe_main(int argc UNUSED_PARAM, char **argv)
 {
+#if ENABLE_MODPROBE || ENABLE_INSMOD || ENABLE_RMMOD
 	int exitcode;
+#endif
 	struct utsname uts;
 	IF_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE(char *options = NULL;)
 
@@ -954,7 +956,12 @@ int modprobe_main(int argc UNUSED_PARAM, char **argv)
 	}
 	uname(&uts); /* never fails */
 
-	if (is_depmod) {
+	/* depmod? */
+	if ((MOD_APPLET_CNT == 2 && ENABLE_DEPMOD && ENABLE_LSMOD)
+	 /* ^^^^only depmod and lsmod is configured^^^^^^^^^^^^^^^ */
+	 /* note: we already know here it is not lsmod (handled before) */
+	 || is_depmod
+	) {
 		/* Supported:
 		 * -n: print result to stdout
 		 * -a: process all modules (default)
-- 
2.25.1