1. 02 3月, 2017 40 次提交
    • I
      sched/headers: Prepare for the removal of various unrelated headers from <linux/sched.h> · cc5efc23
      Ingo Molnar 提交于
      We are going to remove the following header inclusions from <linux/sched.h>:
      
      	#include <asm/param.h>
      	#include <linux/threads.h>
      	#include <linux/kernel.h>
      	#include <linux/types.h>
      	#include <linux/timex.h>
      	#include <linux/jiffies.h>
      	#include <linux/rbtree.h>
      	#include <linux/thread_info.h>
      	#include <linux/cpumask.h>
      	#include <linux/errno.h>
      	#include <linux/nodemask.h>
      	#include <linux/preempt.h>
      	#include <asm/page.h>
      	#include <linux/smp.h>
      	#include <linux/compiler.h>
      	#include <linux/completion.h>
      	#include <linux/percpu.h>
      	#include <linux/topology.h>
      	#include <linux/rcupdate.h>
      	#include <linux/time.h>
      	#include <linux/timer.h>
      	#include <linux/llist.h>
      	#include <linux/uidgid.h>
      	#include <asm/processor.h>
      
      Fix up a single .h file that got hold of <linux/sysctl.h> via one of these headers.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      cc5efc23
    • I
      sched/headers: Prepare for the removal of <linux/rtmutex.h> from <linux/sched.h> · 037741a6
      Ingo Molnar 提交于
      Fix up missing #includes in other places that rely on sched.h doing that for them.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      037741a6
    • I
      sched/headers: Prepare for the removal of <asm/ptrace.h> from <linux/sched.h> · 4cf421e5
      Ingo Molnar 提交于
      Fix up missing #includes in other places that rely on sched.h doing that for them.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      4cf421e5
    • I
      sched/headers: Prepare to remove <linux/cred.h> inclusion from <linux/sched.h> · 5b825c3a
      Ingo Molnar 提交于
      Add #include <linux/cred.h> dependencies to all .c files rely on sched.h
      doing that for them.
      
      Note that even if the count where we need to add extra headers seems high,
      it's still a net win, because <linux/sched.h> is included in over
      2,200 files ...
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      5b825c3a
    • I
      sched/headers: Prepare header dependency changes, move the <asm/paravirt.h>... · 7fce777c
      Ingo Molnar 提交于
      sched/headers: Prepare header dependency changes, move the <asm/paravirt.h> include to kernel/sched/sched.h
      
      Recent header reorganizations unearthed this hidden dependency:
      
        kernel/sched/core.c:199:25: error: 'paravirt_steal_rq_enabled' undeclared (first use in this function)
        kernel/sched/core.c:200:11: error: implicit declaration of function 'paravirt_steal_clock' [-Werror=implicit-function-declaration]
      
      So move the asm/paravirt.h include from kernel/sched/cpuclock.c to kernel/sched/sched.h.
      
      ( NOTE: We do this change before doing the changes that introduce the build failure,
              so the series remains fully bisectable. )
      Reported-by: Nkbuild test robot <fengguang.wu@intel.com>
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      7fce777c
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/jobctl.h> · 1e4bae64
      Ingo Molnar 提交于
      We are going to split <linux/sched/jobctl.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      Create a trivial placeholder <linux/sched/jobctl.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      Include the new header in the file that is going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      1e4bae64
    • I
      sched/headers: Prepare for new header dependencies before moving code to... · 6a3827d7
      Ingo Molnar 提交于
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/numa_balancing.h>
      
      We are going to split <linux/sched/numa_balancing.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      Create a trivial placeholder <linux/sched/numa_balancing.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      6a3827d7
    • I
      sched/headers: Prepare for new header dependencies before moving more code to <linux/sched/mm.h> · 01042607
      Ingo Molnar 提交于
      We are going to split more MM APIs out of <linux/sched.h>, which
      will have to be picked up from a couple of .c files.
      
      The APIs that we are going to move are:
      
        arch_pick_mmap_layout()
        arch_get_unmapped_area()
        arch_get_unmapped_area_topdown()
        mm_update_next_owner()
      
      Include the header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      01042607
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/cpufreq.h> · 55687da1
      Ingo Molnar 提交于
      We are going to split <linux/sched/cpufreq.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      Create a trivial placeholder <linux/sched/cpufreq.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      55687da1
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/nmi.h> · 38b8d208
      Ingo Molnar 提交于
      We are going to move softlockup APIs out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      <linux/nmi.h> already includes <linux/sched.h>.
      
      Include the <linux/nmi.h> header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      38b8d208
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/user.h> · 8703e8a4
      Ingo Molnar 提交于
      We are going to split <linux/sched/user.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      Create a trivial placeholder <linux/sched/user.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      8703e8a4
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h> · 3f07c014
      Ingo Molnar 提交于
      We are going to split <linux/sched/signal.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      Create a trivial placeholder <linux/sched/signal.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      3f07c014
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/coredump.h> · f7ccbae4
      Ingo Molnar 提交于
      We are going to split <linux/sched/coredump.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      Create a trivial placeholder <linux/sched/coredump.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      f7ccbae4
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/mm.h> · 6e84f315
      Ingo Molnar 提交于
      We are going to split <linux/sched/mm.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      Create a trivial placeholder <linux/sched/mm.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      The APIs that are going to be moved first are:
      
         mm_alloc()
         __mmdrop()
         mmdrop()
         mmdrop_async_fn()
         mmdrop_async()
         mmget_not_zero()
         mmput()
         mmput_async()
         get_task_mm()
         mm_access()
         mm_release()
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      6e84f315
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/autogroup.h> · 4eb5aaa3
      Ingo Molnar 提交于
      We are going to split <linux/sched/autogroup.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      Create a trivial placeholder <linux/sched/autogroup.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      4eb5aaa3
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/loadavg.h> · 4f17722c
      Ingo Molnar 提交于
      We are going to split <linux/sched/loadavg.h> out of <linux/sched.h>, which
      will have to be picked up from a couple of .c files.
      
      Create a trivial placeholder <linux/sched/topology.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      4f17722c
    • I
      sched/headers: Prepare for new header dependencies before moving code to <uapi/linux/sched/types.h> · ae7e81c0
      Ingo Molnar 提交于
      We are going to move scheduler ABI details to <uapi/linux/sched/types.h>,
      which will be used from a number of .c files.
      
      Create empty placeholder header that maps to <linux/types.h>.
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      ae7e81c0
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/clock.h> · e6017571
      Ingo Molnar 提交于
      We are going to split <linux/sched/clock.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and .c files.
      
      Create a trivial placeholder <linux/sched/clock.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      e6017571
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/wake_q.h> · 84f001e1
      Ingo Molnar 提交于
      We are going to split <linux/sched/wake_q.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      Create a trivial placeholder <linux/sched/wake_q.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      84f001e1
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/idle.h> · 4c822698
      Ingo Molnar 提交于
      We are going to split  <linux/sched/idle.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      Create a trivial placeholder <linux/sched/idle.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      4c822698
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/topology.h> · 105ab3d8
      Ingo Molnar 提交于
      We are going to split <linux/sched/topology.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      Create a trivial placeholder <linux/sched/topology.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      105ab3d8
    • I
      kasan, sched/headers: Uninline kasan_enable/disable_current() · af8601ad
      Ingo Molnar 提交于
      <linux/kasan.h> is a low level header that is included early
      in affected kernel headers. But it includes <linux/sched.h>
      which complicates the cleanup of sched.h dependencies.
      
      But kasan.h has almost no need for sched.h: its only use of
      scheduler functionality is in two inline functions which are
      not used very frequently - so uninline kasan_enable_current()
      and kasan_disable_current().
      
      Also add a <linux/sched.h> dependency to a .c file that depended
      on kasan.h including it.
      
      This paves the way to remove the <linux/sched.h> include from kasan.h.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      af8601ad
    • I
      mm/vmacache, sched/headers: Introduce 'struct vmacache' and move it from... · 314ff785
      Ingo Molnar 提交于
      mm/vmacache, sched/headers: Introduce 'struct vmacache' and move it from <linux/sched.h> to <linux/mm_types>
      
      The <linux/sched.h> header includes various vmacache related defines,
      which are arguably misplaced.
      
      Move them to mm_types.h and minimize the sched.h impact by putting
      all task vmacache state into a new 'struct vmacache' structure.
      
      No change in functionality.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      314ff785
    • I
      sched/headers, cgroups: Remove the threadgroup_change_*() wrappery · 780de9dd
      Ingo Molnar 提交于
      threadgroup_change_begin()/end() is a pointless wrapper around
      cgroup_threadgroup_change_begin()/end(), minus a might_sleep()
      in the !CONFIG_CGROUPS=y case.
      
      Remove the wrappery, move the might_sleep() (the down_read()
      already has a might_sleep() check).
      
      This debloats <linux/sched.h> a bit and simplifies this API.
      
      Update all call sites.
      
      No change in functionality.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      780de9dd
    • I
      rcu: Separate the RCU synchronization types and APIs into <linux/rcupdate_wait.h> · f9411ebe
      Ingo Molnar 提交于
      So rcupdate.h is a pretty complex header, in particular it includes
      <linux/completion.h> which includes <linux/wait.h> - creating a
      dependency that includes <linux/wait.h> in <linux/sched.h>,
      which prevents the isolation of <linux/sched.h> from the derived
      <linux/wait.h> header.
      
      Solve part of the problem by decoupling rcupdate.h from completions:
      this can be done by separating out the rcu_synchronize types and APIs,
      and updating their usage sites.
      
      Since this is a mostly RCU-internal types this will not just simplify
      <linux/sched.h>'s dependencies, but will make all the hundreds of
      .c files that include rcupdate.h but not completions or wait.h build
      faster.
      
      ( For rcutiny this means that two dependent APIs have to be uninlined,
        but that shouldn't be much of a problem as they are rare variants. )
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      f9411ebe
    • I
      sched/core: Remove the tsk_nr_cpus_allowed() wrapper · 4b53a341
      Ingo Molnar 提交于
      tsk_nr_cpus_allowed() too is a pretty pointless wrapper that
      is not used consistently and which makes the code both harder
      to read and longer as well.
      
      So remove it - this also shrinks <linux/sched.h> a bit.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      4b53a341
    • I
      sched/core: Remove the tsk_cpus_allowed() wrapper · 0c98d344
      Ingo Molnar 提交于
      So the original intention of tsk_cpus_allowed() was to 'future-proof'
      the field - but it's pretty ineffectual at that, because half of
      the code uses ->cpus_allowed directly ...
      
      Also, the wrapper makes the code longer than the original expression!
      
      So just get rid of it. This also shrinks <linux/sched.h> a bit.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      0c98d344
    • I
      sched/core: Move the get_preempt_disable_ip() inline to sched/core.c · 59ddbcb2
      Ingo Molnar 提交于
      It's defined in <linux/sched.h>, but nothing outside the scheduler
      uses it - so move it to the sched/core.c usage site.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      59ddbcb2
    • I
      sched/core: Convert ___assert_task_state() link time assert to BUILD_BUG_ON() · c930b2c0
      Ingo Molnar 提交于
      The length of TASK_STATE_TO_CHAR_STR was still checked using the old
      link-time manual error method - convert it to BUILD_BUG_ON(). This
      has a couple of advantages:
      
       - it's more obvious what's going on
      
       - it reduces the size and complexity of <linux/sched.h>
      
       - BUILD_BUG_ON() will fail during compilation, with a clearer
         error message than the link time assert.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      c930b2c0
    • I
      sched/headers: Make all include/linux/sched/*.h headers build standalone · 9ccd27cc
      Ingo Molnar 提交于
      Make each header self-sufficient, so that it can be built successfully
      both in an allnoconfig and allyesconfig kernel.
      
      Also standardize the naming of their header guards.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      9ccd27cc
    • L
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4977ab6e
      Linus Torvalds 提交于
      Pull objtool relocation fixes from Ingo Molnar:
       "Two fixes related to the module loading regression introduced by the
        recent objtool changes"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool, modules: Discard objtool annotation sections for modules
        objtool, compiler.h: Fix __unreachable section relocation size
      4977ab6e
    • L
      Merge tag 'nfs-for-4.11-1' of git://git.linux-nfs.org/projects/anna/linux-nfs · 8f03cf50
      Linus Torvalds 提交于
      Pull NFS client updates from Anna Schumaker:
       "Highlights include:
      
        Stable bugfixes:
         - NFSv4: Fix memory and state leak in _nfs4_open_and_get_state
         - xprtrdma: Fix Read chunk padding
         - xprtrdma: Per-connection pad optimization
         - xprtrdma: Disable pad optimization by default
         - xprtrdma: Reduce required number of send SGEs
         - nlm: Ensure callback code also checks that the files match
         - pNFS/flexfiles: If the layout is invalid, it must be updated before
           retrying
         - NFSv4: Fix reboot recovery in copy offload
         - Revert "NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION
           replies to OP_SEQUENCE"
         - NFSv4: fix getacl head length estimation
         - NFSv4: fix getacl ERANGE for sum ACL buffer sizes
      
        Features:
         - Add and use dprintk_cont macros
         - Various cleanups to NFS v4.x to reduce code duplication and
           complexity
         - Remove unused cr_magic related code
         - Improvements to sunrpc "read from buffer" code
         - Clean up sunrpc timeout code and allow changing TCP timeout
           parameters
         - Remove duplicate mw_list management code in xprtrdma
         - Add generic functions for encoding and decoding xdr streams
      
        Bugfixes:
         - Clean up nfs_show_mountd_netid
         - Make layoutreturn_ops static and use NULL instead of 0 to fix
           sparse warnings
         - Properly handle -ERESTARTSYS in nfs_rename()
         - Check if register_shrinker() failed during rpcauth_init()
         - Properly clean up procfs/pipefs entries
         - Various NFS over RDMA related fixes
         - Silence unititialized variable warning in sunrpc"
      
      * tag 'nfs-for-4.11-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (64 commits)
        NFSv4: fix getacl ERANGE for some ACL buffer sizes
        NFSv4: fix getacl head length estimation
        Revert "NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION replies to OP_SEQUENCE"
        NFSv4: Fix reboot recovery in copy offload
        pNFS/flexfiles: If the layout is invalid, it must be updated before retrying
        NFSv4: Clean up owner/group attribute decode
        SUNRPC: Add a helper function xdr_stream_decode_string_dup()
        NFSv4: Remove bogus "struct nfs_client" argument from decode_ace()
        NFSv4: Fix the underestimation of delegation XDR space reservation
        NFSv4: Replace callback string decode function with a generic
        NFSv4: Replace the open coded decode_opaque_inline() with the new generic
        NFSv4: Replace ad-hoc xdr encode/decode helpers with xdr_stream_* generics
        SUNRPC: Add generic helpers for xdr_stream encode/decode
        sunrpc: silence uninitialized variable warning
        nlm: Ensure callback code also checks that the files match
        sunrpc: Allow xprt->ops->timer method to sleep
        xprtrdma: Refactor management of mw_list field
        xprtrdma: Handle stale connection rejection
        xprtrdma: Properly recover FRWRs with in-flight FASTREG WRs
        xprtrdma: Shrink send SGEs array
        ...
      8f03cf50
    • L
      Merge tag 'for-f2fs-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 25c4e6c3
      Linus Torvalds 提交于
      Pull f2fs updates from Jaegeuk Kim:
       "This round introduces several interesting features such as on-disk NAT
        bitmaps, IO alignment, and a discard thread. And it includes a couple
        of major bug fixes as below.
      
        Enhancements:
      
         - introduce on-disk bitmaps to avoid scanning NAT blocks when getting
           free nids
      
         - support IO alignment to prepare open-channel SSD integration in
           future
      
         - introduce a discard thread to avoid long latency during checkpoint
           and fstrim
      
         - use SSR for warm node and enable inline_xattr by default
      
         - introduce in-memory bitmaps to check FS consistency for debugging
      
         - improve write_begin by avoiding needless read IO
      
        Bug fixes:
      
         - fix broken zone_reset behavior for SMR drive
      
         - fix wrong victim selection policy during GC
      
         - fix missing behavior when preparing discard commands
      
         - fix bugs in atomic write support and fiemap
      
         - workaround to handle multiple f2fs_add_link calls having same name
      
        ... and it includes a bunch of clean-up patches as well"
      
      * tag 'for-f2fs-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (97 commits)
        f2fs: avoid to flush nat journal entries
        f2fs: avoid to issue redundant discard commands
        f2fs: fix a plint compile warning
        f2fs: add f2fs_drop_inode tracepoint
        f2fs: Fix zoned block device support
        f2fs: remove redundant set_page_dirty()
        f2fs: fix to enlarge size of write_io_dummy mempool
        f2fs: fix memory leak of write_io_dummy mempool during umount
        f2fs: fix to update F2FS_{CP_}WB_DATA count correctly
        f2fs: use MAX_FREE_NIDS for the free nids target
        f2fs: introduce free nid bitmap
        f2fs: new helper cur_cp_crc() getting crc in f2fs_checkpoint
        f2fs: update the comment of default nr_pages to skipping
        f2fs: drop the duplicate pval in f2fs_getxattr
        f2fs: Don't update the xattr data that same as the exist
        f2fs: kill __is_extent_same
        f2fs: avoid bggc->fggc when enough free segments are avaliable after cp
        f2fs: select target segment with closer temperature in SSR mode
        f2fs: show simple call stack in fault injection message
        f2fs: no need lock_op in f2fs_write_inline_data
        ...
      25c4e6c3
    • J
      objtool, modules: Discard objtool annotation sections for modules · e390f9a9
      Josh Poimboeuf 提交于
      The '__unreachable' and '__func_stack_frame_non_standard' sections are
      only used at compile time.  They're discarded for vmlinux but they
      should also be discarded for modules.
      
      Since this is a recurring pattern, prefix the section names with
      ".discard.".  It's a nice convention and vmlinux.lds.h already discards
      such sections.
      
      Also remove the 'a' (allocatable) flag from the __unreachable section
      since it doesn't make sense for a discarded section.
      Suggested-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NJosh Poimboeuf <jpoimboe@redhat.com>
      Cc: Jessica Yu <jeyu@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Fixes: d1091c7f ("objtool: Improve detection of BUG() and other dead ends")
      Link: http://lkml.kernel.org/r/20170301180444.lhd53c5tibc4ns77@trebleSigned-off-by: NIngo Molnar <mingo@kernel.org>
      e390f9a9
    • L
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 6053dc98
      Linus Torvalds 提交于
      Pull arm64 fixes from Will Deacon:
       "The main fix here addresses a kernel panic triggered on Qualcomm
        QDF2400 due to incorrect register usage in an erratum workaround
        introduced during the merge window.
      
        Summary:
      
         - Fix kernel panic on specific Qualcomm platform due to broken
           erratum workaround
      
         - Revert contiguous bit support due to TLB conflict aborts in
           simulation
      
         - Don't treat all CPU ID register fields as 4-bit quantities"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64/cpufeature: check correct field width when updating sys_val
        Revert "arm64: mm: set the contiguous bit for kernel mappings where appropriate"
        arm64: Avoid clobbering mm in erratum workaround on QDF2400
      6053dc98
    • L
      Merge tag 'powerpc-4.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · b286cedd
      Linus Torvalds 提交于
      Pull more powerpc updates from Michael Ellerman:
       "Highlights include:
      
         - an update of the disassembly code used by xmon to the latest
           versions in binutils. We've received permission from all the
           authors of the relevant binutils changes to relicense their changes
           to the relevant files from GPLv3 to GPLv2, for inclusion in Linux.
           Thanks to Peter Bergner for doing the leg work to get permission
           from everyone.
      
         - addition of the "architected" Power9 CPU table entry, allowing us
           to boot in Power9 architected mode under a hypervisor.
      
         - updates to the Power9 PMU code.
      
         - implementation of clear_bit_unlock_is_negative_byte() to optimise
           unlock_page().
      
         - Freescale updates from Scott: "Highlights include 8xx breakpoints
           and perf, t1042rdb display support, and board updates."
      
        Thanks to:
          Al Viro, Andrew Donnellan, Aneesh Kumar K.V, Balbir Singh, Douglas
          Miller, Frédéric Weisbecker, Gavin Shan, Madhavan Srinivasan,
          Michael Roth, Nathan Fontenot, Naveen N. Rao, Nicholas Piggin, Peter
          Bergner, Paul E. McKenney, Rashmica Gupta, Russell Currey, Sahil
          Mehta, Stewart Smith"
      
      * tag 'powerpc-4.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (48 commits)
        powerpc: Remove leftover cputime_to_nsecs call causing build error
        powerpc/mm/hash: Always clear UPRT and Host Radix bits when setting up CPU
        powerpc/optprobes: Fix TOC handling in optprobes trampoline
        powerpc/pseries: Advertise Hot Plug Event support to firmware
        cxl: fix nested locking hang during EEH hotplug
        powerpc/xmon: Dump memory in CPU endian format
        powerpc/pseries: Revert 'Auto-online hotplugged memory'
        powerpc/powernv: Make PCI non-optional
        powerpc/64: Implement clear_bit_unlock_is_negative_byte()
        powerpc/powernv: Remove unused variable in pnv_pci_sriov_disable()
        powerpc/kernel: Remove error message in pcibios_setup_phb_resources()
        powerpc/mm: Fix typo in set_pte_at()
        pci/hotplug/pnv-php: Disable MSI and PCI device properly
        pci/hotplug/pnv-php: Disable surprise hotplug capability on conflicts
        pci/hotplug/pnv-php: Remove WARN_ON() in pnv_php_put_slot()
        powerpc: Add POWER9 architected mode to cputable
        powerpc/perf: use is_kernel_addr macro in perf_get_misc_flags()
        powerpc/perf: Avoid FAB_*_MATCH checks for power9
        powerpc/perf: Add restrictions to PMC5 in power9 DD1
        powerpc/perf: Use Instruction Counter value
        ...
      b286cedd
    • B
      Input: rmi4 - f30: detect INPUT_PROP_BUTTONPAD from the button count · 522214d9
      Benjamin Tissoires 提交于
      INPUT_PROP_BUTTONPAD is currently only set through the platform data.
      The RMI4 header doc says that this property is there to force the
      buttonpad property, so we also need to detect it by looking at
      the exported buttons count.
      Signed-off-by: NBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Reported-and-tested-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      522214d9
    • L
      Merge tag 'sound-fix-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 044d5dfd
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "A few last-minute fixes for rc1:
      
         - ALSA core timer and sequencer fixes for bugs spotted by syzkaller
      
         - a couple of trivial HD-audio fixups
      
         - additional PCI / codec IDs for Intel Geminilake
      
         - fixes for CT-XFi DMA mask bugs"
      
      * tag 'sound-fix-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: seq: Fix link corruption by event error handling
        ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming
        ALSA: ctxfi: Fallback DMA mask to 32bit
        ALSA: timer: Reject user params with too small ticks
        ALSA: hda: Add Geminilake HDMI codec ID
        ALSA: hda - Fix micmute hotkey problem for a lenovo AIO machine
        ALSA: hda - Add Geminilake PCI ID
      044d5dfd
    • L
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 544a068f
      Linus Torvalds 提交于
      Pull thermal management updates from Zhang Rui:
      
       - add thermal driver for R-Car Gen3 thermal sensors.
      
       - add thermal driver for ZTE' zx2967 family thermal sensors.
      
       - convert thermal ID allocation from IDR to IDA.
      
       - fix a possible NULL dereference in imx thermal driver.
      
       - fix a ti-soc-thermal driver dependency issue so that critical thermal
         control is still available when CPU_THERMAL is not defined.
      
       - update binding information for QorIQ thermal driver.
      
       - a couple of cleanups in thermal core, intel_powerclamp, exynos,
         dra752-thermal, mtk-thermal driver.
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        powerpc/mpc85xx: Update TMU device tree node for T1023/T1024
        powerpc/mpc85xx: Update TMU device tree node for T1040/T1042
        dt-bindings: Update QorIQ TMU thermal bindings
        thermal: mtk_thermal: Staticise a number of data variables
        thermal: arm: dra752: Remove all TSHUT related definitions
        thermal: arm: dra752: Remove TSHUT configuration
        thermal: ti-soc-thermal: Remove CPU_THERMAL Dependency from TI_THERMAL
        thermal: imx: Fix possible NULL dereference.
        thermal: exynos: Remove parsing unused samsung,tmu_cal_mode property
        thermal: zx2967: add thermal driver for ZTE's zx2967 family
        thermal: use cpumask_var_t for on-stack cpu masks
        dt: bindings: add documentation for zx2967 family thermal sensor
        thermal/intel_powerclamp: Remove set-but-not-used variables
        thermal: rcar_gen3_thermal: Add R-Car Gen3 thermal driver
        thermal: rcar_gen3_thermal: Document the R-Car Gen3
        thermal: convert devfreq_cooling to use an IDA
        thermal: convert cpu_cooling to use an IDA
        thermal: convert clock cooling to use an IDA
        thermal core: convert ID allocation to IDA
      544a068f
    • L
      Merge tag 'pwm/for-4.11-rc1' of... · 545b2820
      Linus Torvalds 提交于
      Merge tag 'pwm/for-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "This set contains mostly fixes to existing drivers as well as cleanup
        of code that's not been in active use for a while"
      
      * tag 'pwm/for-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (27 commits)
        acpi: lpss: call pwm_add_table() for BSW PWM device
        pwm: Try to load modules during pwm_get()
        pwm: Don't hold pwm_lookup_lock longer than necessary
        pwm: Make the PWM_POLARITY flag in DTB optional
        pwm: Print error messages with pr_err() instead of pr_debug()
        pwm: imx: Add polarity inversion support to i.MX's PWMv2
        pwm: imx: doc: Update imx-pwm.txt documentation entry
        pwm: imx: Remove redundant i.MX PWMv2 code
        pwm: imx: Provide atomic PWM support for i.MX PWMv2
        pwm: imx: Move PWMv2 wait for fifo slot code to a separate function
        pwm: imx: Move PWMv2 software reset code to a separate function
        pwm: imx: Rewrite v1 code to facilitate switch to atomic PWM
        pwm: imx: Add separate set of PWM ops for v1 and v2
        pwm: imx: Remove ipg clock and enable per clock when required
        pwm: lpss: Add Intel Gemini Lake PCI ID
        pwm: lpss: Do not export board infos for different PWM types
        pwm: lpss: Avoid reconfiguring while UPDATE bit is still enabled
        pwm: lpss: Switch to new atomic API
        pwm: lpss: Allow duty cycle to be 0
        pwm: lpss: Avoid potential overflow of base_unit
        ...
      545b2820