From: Stephen Rothwell Date: Fri, 21 Sep 2012 03:57:24 +0000 (+1000) Subject: Merge remote-tracking branch 'rcu/rcu/next' X-Git-Tag: next-20120921~38 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=4607da773f947334e94b1c7794e8351ac5fae52c;p=karo-tx-linux.git Merge remote-tracking branch 'rcu/rcu/next' Conflicts: arch/Kconfig arch/x86/Kconfig kernel/rcutree.h kernel/rcutree_plugin.h kernel/sched/core.c --- 4607da773f947334e94b1c7794e8351ac5fae52c diff --cc arch/Kconfig index 07db9299ea86,1401a7587973..d5176b861e32 --- a/arch/Kconfig +++ b/arch/Kconfig @@@ -294,26 -281,14 +294,36 @@@ config SECCOMP_FILTE See Documentation/prctl/seccomp_filter.txt for details. +config HAVE_MOD_ARCH_SPECIFIC + bool + help + The arch uses struct mod_arch_specific to store data. Many arches + just need a simple module loader without arch specific data - those + should not enable this. + +config MODULES_USE_ELF_RELA + bool + help + Modules only use ELF RELA relocations. Modules with ELF REL + relocations will give an error. + +config MODULES_USE_ELF_REL + bool + help + Modules only use ELF REL relocations. Modules with ELF RELA + relocations will give an error. + +config HAVE_VIRT_CPU_ACCOUNTING + bool + + config HAVE_RCU_USER_QS + bool + help + Provide kernel entry/exit hooks necessary for userspace + RCU extended quiescent state. Syscalls need to be wrapped inside + rcu_user_exit()-rcu_user_enter() through the slow path using + TIF_NOHZ flag. Exceptions handlers must be wrapped as well. Irqs + are already protected inside rcu_irq_enter/rcu_irq_exit() but + preemption or signal handling on irq exit still need to be protected. + source "kernel/gcov/Kconfig" diff --cc arch/x86/Kconfig index 2ae025556813,ed97b1b162b8..bf57a8b66926 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@@ -102,12 -97,10 +102,13 @@@ config X8 select KTIME_SCALAR if X86_32 select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNLEN_USER + select MODULES_USE_ELF_REL if X86_32 + select MODULES_USE_ELF_RELA if X86_64 + select HAVE_RCU_USER_QS if X86_64 config INSTRUCTION_DECODER - def_bool (KPROBES || PERF_EVENTS || UPROBES) + def_bool y + depends on KPROBES || PERF_EVENTS || UPROBES config OUTPUT_FORMAT string diff --cc kernel/rcutree.h index 1224d4c05382,499d66196e22..5faf05d68326 --- a/kernel/rcutree.h +++ b/kernel/rcutree.h @@@ -196,6 -200,13 +200,7 @@@ struct rcu_node /* Refused to boost: not sure why, though. */ /* This can happen due to race conditions. */ #endif /* #ifdef CONFIG_RCU_BOOST */ - struct task_struct *node_kthread_task; - /* kthread that takes care of this rcu_node */ - /* structure, for example, awakening the */ - /* per-CPU kthreads as needed. */ - unsigned int node_kthread_status; - /* State of node_kthread_task for tracing. */ + raw_spinlock_t fqslock ____cacheline_internodealigned_in_smp; } ____cacheline_internodealigned_in_smp; /* diff --cc kernel/rcutree_plugin.h index c1961aed1213,3b1a11e3e1e4..d42ef1573d3e --- a/kernel/rcutree_plugin.h +++ b/kernel/rcutree_plugin.h @@@ -25,7 -25,7 +25,8 @@@ */ #include +#include + #include #define RCU_KTHREAD_PRIO 1