modutils: add FEATURE_INSMOD_TRY_MMAP option

function                                             old     new   delta
try_to_mmap_module                                     -     121    +121
bb_init_module_24                                   4514    4578     +64
bb_init_module                                       119     173     +54
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/0 up/down: 239/0)             Total: 239 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/modutils/Config.in b/modutils/Config.in
index d2a2e04..83c12b6 100644
--- a/modutils/Config.in
+++ b/modutils/Config.in
@@ -121,6 +121,22 @@
 	  This increases size considerably. Say N unless you plan
 	  to run ancient kernels.
 
+config FEATURE_INSMOD_TRY_MMAP
+	bool "Try to load module from a mmap'ed area"
+	default n
+	depends on INSMOD || MODPROBE_SMALL
+	help
+	  This option causes module loading code to try to mmap
+	  module first. If it does not work (for example,
+	  it does not work for compressed modules), module will be read
+	  (and unpacked if needed) into a memory block allocated by malloc.
+
+	  The only case when mmap works but malloc does not is when
+	  you are trying to load a big module on a very memory-constrained
+	  machine. Malloc will momentarily need 2x as much memory as mmap.
+
+	  Choosing N saves about 250 bytes of code (on 32-bit x86).
+
 config FEATURE_INSMOD_VERSION_CHECKING
 	bool "Enable module version checking"
 	default n