]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'rcu/rcu/next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Tue, 21 Aug 2012 03:28:49 +0000 (13:28 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Tue, 21 Aug 2012 03:28:49 +0000 (13:28 +1000)
Conflicts:
arch/Kconfig
arch/x86/Kconfig
include/linux/sched.h

1  2 
Documentation/kernel-parameters.txt
arch/Kconfig
arch/um/drivers/mconsole_kern.c
arch/x86/Kconfig
arch/x86/kernel/entry_64.S
arch/x86/kernel/signal.c
arch/x86/kernel/traps.c
include/linux/sched.h
init/Kconfig
kernel/sched/core.c
lib/Kconfig.debug

Simple merge
diff --cc arch/Kconfig
index 3450115c64373da128ba7be90de61b8fd7d8f160,1c7c9beaa1933234a62da487cdf255d6a7e76cb5..0e26d74788f0116f346288e7c95ef8d1e109391e
@@@ -281,23 -274,14 +281,33 @@@ 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_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"
Simple merge
index a00d8991583714e9c138bfc68783bc049c5a214f,38dfcc2263ccb7a3b399d286bde11f28da1b7577..e76af9e07e2232ce2298f94f7bc7ef676147afab
@@@ -97,8 -95,7 +97,9 @@@ 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)
Simple merge
Simple merge
Simple merge
index b8c86648a2f95dc6f83aab668fd9a7e07f277b4e,a0949597ce97d12303cadc4162eca35617672720..dce80e7d594589cd8f5c6f6c0af13f5f030e4377
@@@ -1886,13 -1879,14 +1886,21 @@@ static inline void rcu_copy_process(str
  
  #endif
  
 +static inline void tsk_restore_flags(struct task_struct *task,
 +                              unsigned long orig_flags, unsigned long flags)
 +{
 +      task->flags &= ~flags;
 +      task->flags |= orig_flags & flags;
 +}
 +
+ static inline void rcu_switch(struct task_struct *prev,
+                             struct task_struct *next)
+ {
+ #ifdef CONFIG_RCU_USER_QS
+       rcu_user_hooks_switch(prev, next);
+ #endif
+ }
  #ifdef CONFIG_SMP
  extern void do_set_cpus_allowed(struct task_struct *p,
                               const struct cpumask *new_mask);
diff --cc init/Kconfig
Simple merge
Simple merge
Simple merge