Subject: rework try_then_request_module to do less in non-modular kernels
Date: Tue, 08 Jul 2008 19:00:18 +0200
From: Johannes Berg <johannes@sipsolutions.net>

This reworks try_then_request_module to only invoke the "lookup"
function "x" once when the kernel is not modular.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
---
 include/linux/kmod.h |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff -u
--- everything.orig/include/linux/kmod.h	2008-07-08 18:46:21.000000000 +0200
+++ everything/include/linux/kmod.h	2008-07-08 18:48:34.000000000 +0200
@@ -29,11 +29,12 @@
 /* modprobe exit status on success, -ve on error.  Return value
  * usually useless though. */
 extern int request_module(const char * name, ...) __attribute__ ((format (printf, 1, 2)));
+#define try_then_request_module(x, mod...) ((x) ?: (request_module(mod), (x)))
 #else
 static inline int request_module(const char * name, ...) { return -ENOSYS; }
+#define try_then_request_module(x, mod...) (x)
 #endif
 
-#define try_then_request_module(x, mod...) ((x) ?: (request_module(mod), (x)))
 
 struct key;
 struct file;

