summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2017-04-28 13:53:04 -0700
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2017-06-08 08:25:38 -0700
commit07f6e64bf2ab98cad0d9c595659209858e7bff83 (patch)
tree96657582f82b2de9c2367754892713e06c445155
parentea9b0c8a26a2cadfe49382d679eee88d3c4de79c (diff)
downloadlwn-07f6e64bf2ab98cad0d9c595659209858e7bff83.tar.gz
lwn-07f6e64bf2ab98cad0d9c595659209858e7bff83.zip
srcu: Make SRCU be once again optional
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>
-rw-r--r--include/linux/srcu.h7
-rw-r--r--init/Kconfig1
2 files changed, 6 insertions, 2 deletions
diff --git a/include/linux/srcu.h b/include/linux/srcu.h
index 4c1d5f7e62c4..ea356d800675 100644
--- a/include/linux/srcu.h
+++ b/include/linux/srcu.h
@@ -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
/**
diff --git a/init/Kconfig b/init/Kconfig
index 1d3475fc9496..d928a3724af9 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -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