srcu: Make SRCU be once again optional
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Fri, 28 Apr 2017 20:53:04 +0000 (13:53 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 8 Jun 2017 15:25:38 +0000 (08:25 -0700)
Commit d160a727c40e ("srcu: Make SRCU be built by default") in response
to build errors, which were caused by code that included srcu.h
despite !SRCU.  However, srcutiny.o is almost 2K of code, which is not
insignificant for those attempting to run the Linux kernel on IoT devices.
This commit therefore makes SRCU be once again optional, and adjusts
srcu.h to allow error-free inclusion in !SRCU kernel builds.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
include/linux/srcu.h
init/Kconfig

index 4c1d5f7e62c4f6aef8eded0ec9db4d812a4acd29..ea356d8006750db3ff0949a3d2a4f6a5dee590f5 100644 (file)
@@ -62,8 +62,13 @@ int init_srcu_struct(struct srcu_struct *sp);
 #include <linux/srcutree.h>
 #elif defined(CONFIG_CLASSIC_SRCU)
 #include <linux/srcuclassic.h>
-#else
+#elif defined(CONFIG_SRCU)
 #error "Unknown SRCU implementation specified to kernel configuration"
+#else
+
+/* Dummy definition for things like notifiers.  Actual use gets link error. */
+struct srcu_struct { };
+
 #endif
 
 /**
index 1d3475fc94967a58904627d80e8461a3721ddbb0..d928a3724af9357e6dcae2341a86f9f87ecca8f7 100644 (file)
@@ -521,7 +521,6 @@ config RCU_EXPERT
 
 config SRCU
        bool
-       default y
        help
          This option selects the sleepable version of RCU. This version
          permits arbitrary sleeping or blocking within RCU read-side critical