diff options
-rw-r--r-- | arch/arm/kvm/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm64/kvm/Kconfig | 1 | ||||
-rw-r--r-- | arch/mips/kvm/Kconfig | 1 | ||||
-rw-r--r-- | arch/powerpc/kvm/Kconfig | 1 | ||||
-rw-r--r-- | arch/s390/kvm/Kconfig | 1 | ||||
-rw-r--r-- | arch/tile/kvm/Kconfig | 1 | ||||
-rw-r--r-- | arch/x86/Kconfig | 1 | ||||
-rw-r--r-- | arch/x86/kvm/Kconfig | 1 | ||||
-rw-r--r-- | drivers/clk/Kconfig | 1 | ||||
-rw-r--r-- | drivers/cpufreq/Kconfig | 1 | ||||
-rw-r--r-- | drivers/devfreq/Kconfig | 1 | ||||
-rw-r--r-- | drivers/md/Kconfig | 1 | ||||
-rw-r--r-- | drivers/net/Kconfig | 1 | ||||
-rw-r--r-- | fs/btrfs/Kconfig | 1 | ||||
-rw-r--r-- | fs/notify/Kconfig | 1 | ||||
-rw-r--r-- | fs/quota/Kconfig | 1 | ||||
-rw-r--r-- | init/Kconfig | 9 | ||||
-rw-r--r-- | kernel/notifier.c | 3 | ||||
-rw-r--r-- | kernel/power/Kconfig | 1 | ||||
-rw-r--r-- | kernel/rcu/Makefile | 3 | ||||
-rw-r--r-- | lib/Kconfig.debug | 1 | ||||
-rw-r--r-- | mm/Kconfig | 1 | ||||
-rw-r--r-- | security/tomoyo/Kconfig | 1 |
23 files changed, 34 insertions, 1 deletions
diff --git a/arch/arm/kvm/Kconfig b/arch/arm/kvm/Kconfig index 466bd299b1a8..3afee5f40f4f 100644 --- a/arch/arm/kvm/Kconfig +++ b/arch/arm/kvm/Kconfig | |||
@@ -23,6 +23,7 @@ config KVM | |||
23 | select HAVE_KVM_CPU_RELAX_INTERCEPT | 23 | select HAVE_KVM_CPU_RELAX_INTERCEPT |
24 | select KVM_MMIO | 24 | select KVM_MMIO |
25 | select KVM_ARM_HOST | 25 | select KVM_ARM_HOST |
26 | select SRCU | ||
26 | depends on ARM_VIRT_EXT && ARM_LPAE | 27 | depends on ARM_VIRT_EXT && ARM_LPAE |
27 | ---help--- | 28 | ---help--- |
28 | Support hosting virtualized guest machines. You will also | 29 | Support hosting virtualized guest machines. You will also |
diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig index 8ba85e9ea388..b334084d3675 100644 --- a/arch/arm64/kvm/Kconfig +++ b/arch/arm64/kvm/Kconfig | |||
@@ -26,6 +26,7 @@ config KVM | |||
26 | select KVM_ARM_HOST | 26 | select KVM_ARM_HOST |
27 | select KVM_ARM_VGIC | 27 | select KVM_ARM_VGIC |
28 | select KVM_ARM_TIMER | 28 | select KVM_ARM_TIMER |
29 | select SRCU | ||
29 | ---help--- | 30 | ---help--- |
30 | Support hosting virtualized guest machines. | 31 | Support hosting virtualized guest machines. |
31 | 32 | ||
diff --git a/arch/mips/kvm/Kconfig b/arch/mips/kvm/Kconfig index 30e334e823bd..2ae12825529f 100644 --- a/arch/mips/kvm/Kconfig +++ b/arch/mips/kvm/Kconfig | |||
@@ -20,6 +20,7 @@ config KVM | |||
20 | select PREEMPT_NOTIFIERS | 20 | select PREEMPT_NOTIFIERS |
21 | select ANON_INODES | 21 | select ANON_INODES |
22 | select KVM_MMIO | 22 | select KVM_MMIO |
23 | select SRCU | ||
23 | ---help--- | 24 | ---help--- |
24 | Support for hosting Guest kernels. | 25 | Support for hosting Guest kernels. |
25 | Currently supported on MIPS32 processors. | 26 | Currently supported on MIPS32 processors. |
diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig index f5769f19ae25..11850f310fb4 100644 --- a/arch/powerpc/kvm/Kconfig +++ b/arch/powerpc/kvm/Kconfig | |||
@@ -21,6 +21,7 @@ config KVM | |||
21 | select PREEMPT_NOTIFIERS | 21 | select PREEMPT_NOTIFIERS |
22 | select ANON_INODES | 22 | select ANON_INODES |
23 | select HAVE_KVM_EVENTFD | 23 | select HAVE_KVM_EVENTFD |
24 | select SRCU | ||
24 | 25 | ||
25 | config KVM_BOOK3S_HANDLER | 26 | config KVM_BOOK3S_HANDLER |
26 | bool | 27 | bool |
diff --git a/arch/s390/kvm/Kconfig b/arch/s390/kvm/Kconfig index 646db9c467d1..5fce52cf0e57 100644 --- a/arch/s390/kvm/Kconfig +++ b/arch/s390/kvm/Kconfig | |||
@@ -28,6 +28,7 @@ config KVM | |||
28 | select HAVE_KVM_IRQCHIP | 28 | select HAVE_KVM_IRQCHIP |
29 | select HAVE_KVM_IRQFD | 29 | select HAVE_KVM_IRQFD |
30 | select HAVE_KVM_IRQ_ROUTING | 30 | select HAVE_KVM_IRQ_ROUTING |
31 | select SRCU | ||
31 | ---help--- | 32 | ---help--- |
32 | Support hosting paravirtualized guest machines using the SIE | 33 | Support hosting paravirtualized guest machines using the SIE |
33 | virtualization capability on the mainframe. This should work | 34 | virtualization capability on the mainframe. This should work |
diff --git a/arch/tile/kvm/Kconfig b/arch/tile/kvm/Kconfig index 2298cb1daff7..1e968f7550dc 100644 --- a/arch/tile/kvm/Kconfig +++ b/arch/tile/kvm/Kconfig | |||
@@ -21,6 +21,7 @@ config KVM | |||
21 | depends on HAVE_KVM && MODULES | 21 | depends on HAVE_KVM && MODULES |
22 | select PREEMPT_NOTIFIERS | 22 | select PREEMPT_NOTIFIERS |
23 | select ANON_INODES | 23 | select ANON_INODES |
24 | select SRCU | ||
24 | ---help--- | 25 | ---help--- |
25 | Support hosting paravirtualized guest machines. | 26 | Support hosting paravirtualized guest machines. |
26 | 27 | ||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index ba397bde7948..661269953c1a 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -138,6 +138,7 @@ config X86 | |||
138 | select HAVE_ACPI_APEI_NMI if ACPI | 138 | select HAVE_ACPI_APEI_NMI if ACPI |
139 | select ACPI_LEGACY_TABLES_LOOKUP if ACPI | 139 | select ACPI_LEGACY_TABLES_LOOKUP if ACPI |
140 | select X86_FEATURE_NAMES if PROC_FS | 140 | select X86_FEATURE_NAMES if PROC_FS |
141 | select SRCU | ||
141 | 142 | ||
142 | config INSTRUCTION_DECODER | 143 | config INSTRUCTION_DECODER |
143 | def_bool y | 144 | def_bool y |
diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig index f9d16ff56c6b..7dc7ba577ecd 100644 --- a/arch/x86/kvm/Kconfig +++ b/arch/x86/kvm/Kconfig | |||
@@ -40,6 +40,7 @@ config KVM | |||
40 | select HAVE_KVM_MSI | 40 | select HAVE_KVM_MSI |
41 | select HAVE_KVM_CPU_RELAX_INTERCEPT | 41 | select HAVE_KVM_CPU_RELAX_INTERCEPT |
42 | select KVM_VFIO | 42 | select KVM_VFIO |
43 | select SRCU | ||
43 | ---help--- | 44 | ---help--- |
44 | Support hosting fully virtualized guest machines using hardware | 45 | Support hosting fully virtualized guest machines using hardware |
45 | virtualization extensions. You will need a fairly recent | 46 | virtualization extensions. You will need a fairly recent |
diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig index 3f44f292d066..91f86131bb7a 100644 --- a/drivers/clk/Kconfig +++ b/drivers/clk/Kconfig | |||
@@ -13,6 +13,7 @@ config COMMON_CLK | |||
13 | bool | 13 | bool |
14 | select HAVE_CLK_PREPARE | 14 | select HAVE_CLK_PREPARE |
15 | select CLKDEV_LOOKUP | 15 | select CLKDEV_LOOKUP |
16 | select SRCU | ||
16 | ---help--- | 17 | ---help--- |
17 | The common clock framework is a single definition of struct | 18 | The common clock framework is a single definition of struct |
18 | clk, useful across many platforms, as well as an | 19 | clk, useful across many platforms, as well as an |
diff --git a/drivers/cpufreq/Kconfig b/drivers/cpufreq/Kconfig index 29b2ef5a68b9..a171fef2c2b6 100644 --- a/drivers/cpufreq/Kconfig +++ b/drivers/cpufreq/Kconfig | |||
@@ -2,6 +2,7 @@ menu "CPU Frequency scaling" | |||
2 | 2 | ||
3 | config CPU_FREQ | 3 | config CPU_FREQ |
4 | bool "CPU Frequency scaling" | 4 | bool "CPU Frequency scaling" |
5 | select SRCU | ||
5 | help | 6 | help |
6 | CPU Frequency scaling allows you to change the clock speed of | 7 | CPU Frequency scaling allows you to change the clock speed of |
7 | CPUs on the fly. This is a nice method to save power, because | 8 | CPUs on the fly. This is a nice method to save power, because |
diff --git a/drivers/devfreq/Kconfig b/drivers/devfreq/Kconfig index faf4e70c42e0..3891f6781298 100644 --- a/drivers/devfreq/Kconfig +++ b/drivers/devfreq/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | menuconfig PM_DEVFREQ | 1 | menuconfig PM_DEVFREQ |
2 | bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support" | 2 | bool "Generic Dynamic Voltage and Frequency Scaling (DVFS) support" |
3 | select SRCU | ||
3 | help | 4 | help |
4 | A device may have a list of frequencies and voltages available. | 5 | A device may have a list of frequencies and voltages available. |
5 | devfreq, a generic DVFS framework can be registered for a device | 6 | devfreq, a generic DVFS framework can be registered for a device |
diff --git a/drivers/md/Kconfig b/drivers/md/Kconfig index 5bdedf6df153..c355a226a024 100644 --- a/drivers/md/Kconfig +++ b/drivers/md/Kconfig | |||
@@ -5,6 +5,7 @@ | |||
5 | menuconfig MD | 5 | menuconfig MD |
6 | bool "Multiple devices driver support (RAID and LVM)" | 6 | bool "Multiple devices driver support (RAID and LVM)" |
7 | depends on BLOCK | 7 | depends on BLOCK |
8 | select SRCU | ||
8 | help | 9 | help |
9 | Support multiple physical spindles through a single logical device. | 10 | Support multiple physical spindles through a single logical device. |
10 | Required for RAID and logical volume management. | 11 | Required for RAID and logical volume management. |
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index d6607ee9c855..84673ebcf428 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -197,6 +197,7 @@ config NETCONSOLE_DYNAMIC | |||
197 | 197 | ||
198 | config NETPOLL | 198 | config NETPOLL |
199 | def_bool NETCONSOLE | 199 | def_bool NETCONSOLE |
200 | select SRCU | ||
200 | 201 | ||
201 | config NET_POLL_CONTROLLER | 202 | config NET_POLL_CONTROLLER |
202 | def_bool NETPOLL | 203 | def_bool NETPOLL |
diff --git a/fs/btrfs/Kconfig b/fs/btrfs/Kconfig index a66768ebc8d1..80e9c18ea64f 100644 --- a/fs/btrfs/Kconfig +++ b/fs/btrfs/Kconfig | |||
@@ -8,6 +8,7 @@ config BTRFS_FS | |||
8 | select LZO_DECOMPRESS | 8 | select LZO_DECOMPRESS |
9 | select RAID6_PQ | 9 | select RAID6_PQ |
10 | select XOR_BLOCKS | 10 | select XOR_BLOCKS |
11 | select SRCU | ||
11 | 12 | ||
12 | help | 13 | help |
13 | Btrfs is a general purpose copy-on-write filesystem with extents, | 14 | Btrfs is a general purpose copy-on-write filesystem with extents, |
diff --git a/fs/notify/Kconfig b/fs/notify/Kconfig index 22c629eedd82..2a24249b30af 100644 --- a/fs/notify/Kconfig +++ b/fs/notify/Kconfig | |||
@@ -1,5 +1,6 @@ | |||
1 | config FSNOTIFY | 1 | config FSNOTIFY |
2 | def_bool n | 2 | def_bool n |
3 | select SRCU | ||
3 | 4 | ||
4 | source "fs/notify/dnotify/Kconfig" | 5 | source "fs/notify/dnotify/Kconfig" |
5 | source "fs/notify/inotify/Kconfig" | 6 | source "fs/notify/inotify/Kconfig" |
diff --git a/fs/quota/Kconfig b/fs/quota/Kconfig index c51df1dd237e..4a09975aac90 100644 --- a/fs/quota/Kconfig +++ b/fs/quota/Kconfig | |||
@@ -5,6 +5,7 @@ | |||
5 | config QUOTA | 5 | config QUOTA |
6 | bool "Quota support" | 6 | bool "Quota support" |
7 | select QUOTACTL | 7 | select QUOTACTL |
8 | select SRCU | ||
8 | help | 9 | help |
9 | If you say Y here, you will be able to set per user limits for disk | 10 | If you say Y here, you will be able to set per user limits for disk |
10 | usage (also called disk quotas). Currently, it works for the | 11 | usage (also called disk quotas). Currently, it works for the |
diff --git a/init/Kconfig b/init/Kconfig index 9afb971497f4..f085969ba340 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -501,9 +501,17 @@ config TINY_RCU | |||
501 | 501 | ||
502 | endchoice | 502 | endchoice |
503 | 503 | ||
504 | config SRCU | ||
505 | bool | ||
506 | help | ||
507 | This option selects the sleepable version of RCU. This version | ||
508 | permits arbitrary sleeping or blocking within RCU read-side critical | ||
509 | sections. | ||
510 | |||
504 | config TASKS_RCU | 511 | config TASKS_RCU |
505 | bool "Task_based RCU implementation using voluntary context switch" | 512 | bool "Task_based RCU implementation using voluntary context switch" |
506 | default n | 513 | default n |
514 | select SRCU | ||
507 | help | 515 | help |
508 | This option enables a task-based RCU implementation that uses | 516 | This option enables a task-based RCU implementation that uses |
509 | only voluntary context switch (not preemption!), idle, and | 517 | only voluntary context switch (not preemption!), idle, and |
@@ -1595,6 +1603,7 @@ config PERF_EVENTS | |||
1595 | depends on HAVE_PERF_EVENTS | 1603 | depends on HAVE_PERF_EVENTS |
1596 | select ANON_INODES | 1604 | select ANON_INODES |
1597 | select IRQ_WORK | 1605 | select IRQ_WORK |
1606 | select SRCU | ||
1598 | help | 1607 | help |
1599 | Enable kernel support for various performance events provided | 1608 | Enable kernel support for various performance events provided |
1600 | by software and hardware. | 1609 | by software and hardware. |
diff --git a/kernel/notifier.c b/kernel/notifier.c index 4803da6eab62..ae9fc7cc360e 100644 --- a/kernel/notifier.c +++ b/kernel/notifier.c | |||
@@ -402,6 +402,7 @@ int raw_notifier_call_chain(struct raw_notifier_head *nh, | |||
402 | } | 402 | } |
403 | EXPORT_SYMBOL_GPL(raw_notifier_call_chain); | 403 | EXPORT_SYMBOL_GPL(raw_notifier_call_chain); |
404 | 404 | ||
405 | #ifdef CONFIG_SRCU | ||
405 | /* | 406 | /* |
406 | * SRCU notifier chain routines. Registration and unregistration | 407 | * SRCU notifier chain routines. Registration and unregistration |
407 | * use a mutex, and call_chain is synchronized by SRCU (no locks). | 408 | * use a mutex, and call_chain is synchronized by SRCU (no locks). |
@@ -528,6 +529,8 @@ void srcu_init_notifier_head(struct srcu_notifier_head *nh) | |||
528 | } | 529 | } |
529 | EXPORT_SYMBOL_GPL(srcu_init_notifier_head); | 530 | EXPORT_SYMBOL_GPL(srcu_init_notifier_head); |
530 | 531 | ||
532 | #endif /* CONFIG_SRCU */ | ||
533 | |||
531 | static ATOMIC_NOTIFIER_HEAD(die_chain); | 534 | static ATOMIC_NOTIFIER_HEAD(die_chain); |
532 | 535 | ||
533 | int notrace notify_die(enum die_val val, const char *str, | 536 | int notrace notify_die(enum die_val val, const char *str, |
diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig index 48b28d387c7f..7e01f78f0417 100644 --- a/kernel/power/Kconfig +++ b/kernel/power/Kconfig | |||
@@ -251,6 +251,7 @@ config APM_EMULATION | |||
251 | 251 | ||
252 | config PM_OPP | 252 | config PM_OPP |
253 | bool | 253 | bool |
254 | select SRCU | ||
254 | ---help--- | 255 | ---help--- |
255 | SOCs have a standard set of tuples consisting of frequency and | 256 | SOCs have a standard set of tuples consisting of frequency and |
256 | voltage pairs that the device will support per voltage domain. This | 257 | voltage pairs that the device will support per voltage domain. This |
diff --git a/kernel/rcu/Makefile b/kernel/rcu/Makefile index e6fae503d1bc..50a808424b06 100644 --- a/kernel/rcu/Makefile +++ b/kernel/rcu/Makefile | |||
@@ -1,4 +1,5 @@ | |||
1 | obj-y += update.o srcu.o | 1 | obj-y += update.o |
2 | obj-$(CONFIG_SRCU) += srcu.o | ||
2 | obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o | 3 | obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o |
3 | obj-$(CONFIG_TREE_RCU) += tree.o | 4 | obj-$(CONFIG_TREE_RCU) += tree.o |
4 | obj-$(CONFIG_PREEMPT_RCU) += tree.o | 5 | obj-$(CONFIG_PREEMPT_RCU) += tree.o |
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 5f2ce616c046..7a9c93e327f2 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
@@ -1215,6 +1215,7 @@ config RCU_TORTURE_TEST | |||
1215 | tristate "torture tests for RCU" | 1215 | tristate "torture tests for RCU" |
1216 | depends on DEBUG_KERNEL | 1216 | depends on DEBUG_KERNEL |
1217 | select TORTURE_TEST | 1217 | select TORTURE_TEST |
1218 | select SRCU | ||
1218 | default n | 1219 | default n |
1219 | help | 1220 | help |
1220 | This option provides a kernel module that runs torture tests | 1221 | This option provides a kernel module that runs torture tests |
diff --git a/mm/Kconfig b/mm/Kconfig index 1d1ae6b078fd..4395b12869c8 100644 --- a/mm/Kconfig +++ b/mm/Kconfig | |||
@@ -325,6 +325,7 @@ config VIRT_TO_BUS | |||
325 | 325 | ||
326 | config MMU_NOTIFIER | 326 | config MMU_NOTIFIER |
327 | bool | 327 | bool |
328 | select SRCU | ||
328 | 329 | ||
329 | config KSM | 330 | config KSM |
330 | bool "Enable KSM for page merging" | 331 | bool "Enable KSM for page merging" |
diff --git a/security/tomoyo/Kconfig b/security/tomoyo/Kconfig index 8eb779b9d77f..604e718d68d3 100644 --- a/security/tomoyo/Kconfig +++ b/security/tomoyo/Kconfig | |||
@@ -5,6 +5,7 @@ config SECURITY_TOMOYO | |||
5 | select SECURITYFS | 5 | select SECURITYFS |
6 | select SECURITY_PATH | 6 | select SECURITY_PATH |
7 | select SECURITY_NETWORK | 7 | select SECURITY_NETWORK |
8 | select SRCU | ||
8 | default n | 9 | default n |
9 | help | 10 | help |
10 | This selects TOMOYO Linux, pathname-based access control. | 11 | This selects TOMOYO Linux, pathname-based access control. |