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. |
