Skip to content
  1. Jun 03, 2019
    • Yuyang Du's avatar
      locking/lockdep: Consolidate lock usage bit initialization · 09180651
      Yuyang Du authored
      
      
      Lock usage bit initialization is consolidated into one function
      mark_usage(). Trivial readability improvement. No functional change.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-22-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      09180651
    • Yuyang Du's avatar
      locking/lockdep: Check redundant dependency only when CONFIG_LOCKDEP_SMALL · 68e9dc29
      Yuyang Du authored
      
      
      As Peter has put it all sound and complete for the cause, I simply quote:
      
      "It (check_redundant) was added for cross-release (which has since been
      reverted) which would generate a lot of redundant links (IIRC) but
      having it makes the reports more convoluted -- basically, if we had an
      A-B-C relation, then A-C will not be added to the graph because it is
      already covered. This then means any report will include B, even though
      a shorter cycle might have been possible."
      
      This would increase the number of direct dependencies. For a simple workload
      (make clean; reboot; make vmlinux -j8), the data looks like this:
      
       CONFIG_LOCKDEP_SMALL: direct dependencies:                  6926
      
      !CONFIG_LOCKDEP_SMALL: direct dependencies:                  9052    (+30.7%)
      
      Suggested-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-21-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      68e9dc29
    • Yuyang Du's avatar
      locking/lockdep: Refactorize check_noncircular and check_redundant · 8c2c2b44
      Yuyang Du authored
      
      
      These two functions now handle different check results themselves. A new
      check_path function is added to check whether there is a path in the
      dependency graph. No functional change.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-20-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      8c2c2b44
    • Yuyang Du's avatar
      locking/lockdep: Remove unused argument in __lock_release · b4adfe8e
      Yuyang Du authored
      
      
      The @nested is not used in __release_lock so remove it despite that it
      is not used in lock_release in the first place.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-19-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      b4adfe8e
    • Yuyang Du's avatar
      locking/lockdep: Remove redundant argument in check_deadlock · 4609c4f9
      Yuyang Du authored
      
      
      In check_deadlock(), the third argument read comes from the second
      argument hlock so that it can be removed. No functional change.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-18-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      4609c4f9
    • Yuyang Du's avatar
      locking/lockdep: Add explanation to lock usage rules in lockdep design doc · 1ac4ba5e
      Yuyang Du authored
      
      
      The irq usage and lock dependency rules that if violated a deacklock may
      happen are explained in more detail.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-17-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      1ac4ba5e
    • Yuyang Du's avatar
      locking/lockdep: Update comments on dependency search · 154f185e
      Yuyang Du authored
      
      
      The breadth-first search is implemented as flat-out non-recursive now, but
      the comments are still describing it as recursive, update the comments in
      that regard.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-16-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      154f185e
    • Yuyang Du's avatar
      locking/lockdep: Avoid constant checks in __bfs by using offset reference · 77a80692
      Yuyang Du authored
      
      
      In search of a dependency in the lock graph, there is contant checks for
      forward or backward search. Directly reference the field offset of the
      struct that differentiates the type of search to avoid those checks.
      
      No functional change.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-15-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      77a80692
    • Yuyang Du's avatar
      locking/lockdep: Change the return type of __cq_dequeue() · c1661325
      Yuyang Du authored
      
      
      With the change, we can slightly adjust the code to iterate the queue in BFS
      search, which simplifies the code. No functional change.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-14-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c1661325
    • Yuyang Du's avatar
      locking/lockdep: Change type of the element field in circular_queue · aa480771
      Yuyang Du authored
      
      
      The element field is an array in struct circular_queue to keep track of locks
      in the search. Making it the same type as the locks avoids type cast. Also
      fix a typo and elaborate the comment above struct circular_queue.
      
      No functional change.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-13-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      aa480771
    • Yuyang Du's avatar
      locking/lockdep: Update comment · 31a490e5
      Yuyang Du authored
      
      
      A leftover comment is removed. While at it, add more explanatory
      comments. Such a trivial patch!
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-12-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      31a490e5
    • Yuyang Du's avatar
      locking/lockdep: Remove unused argument in validate_chain() and check_deadlock() · 0b9fc8ec
      Yuyang Du authored
      
      
      The lockdep_map argument in them is not used, remove it.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-11-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      0b9fc8ec
    • Yuyang Du's avatar
      locking/lockdep: Change the range of class_idx in held_lock struct · 01bb6f0a
      Yuyang Du authored
      
      
      held_lock->class_idx is used to point to the class of the held lock. The
      index is shifted by 1 to make index 0 mean no class, which results in class
      index shifting back and forth but is not worth doing so.
      
      The reason is: (1) there will be no "no-class" held_lock to begin with, and
      (2) index 0 seems to be used for error checking, but if something wrong
      indeed happened, the index can't be counted on to distinguish it as that
      something won't set the class_idx to 0 on purpose to tell us it is wrong.
      
      Therefore, change the index to start from 0. This saves a lot of
      back-and-forth shifts and a class slot back to lock_classes.
      
      Since index 0 is now used for lock class, we change the initial chain key to
      -1 to avoid key collision, which is due to the fact that __jhash_mix(0, 0, 0) = 0.
      Actually, the initial chain key can be any arbitrary value other than 0.
      
      In addition, a bitmap is maintained to keep track of the used lock classes,
      and we check the validity of the held lock against that bitmap.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-10-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      01bb6f0a
    • Yuyang Du's avatar
      locking/lockdep: Define INITIAL_CHAIN_KEY for chain keys to start with · f6ec8829
      Yuyang Du authored
      
      
      Chain keys are computed using Jenkins hash function, which needs an initial
      hash to start with. Dedicate a macro to make this clear and configurable. A
      later patch changes this initial chain key.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-9-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      f6ec8829
    • Yuyang Du's avatar
      locking/lockdep: Use lockdep_init_task for task initiation consistently · e196e479
      Yuyang Du authored
      
      
      Despite that there is a lockdep_init_task() which does nothing, lockdep
      initiates tasks by assigning lockdep fields and does so inconsistently. Fix
      this by using lockdep_init_task().
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-8-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      e196e479
    • Yuyang Du's avatar
      locking/lockdep: Update obsolete struct field description · d16dbd1b
      Yuyang Du authored
      
      
      The lock_chain struct definition has outdated comment, update it and add
      struct member description.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-7-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      d16dbd1b
    • Yuyang Du's avatar
      locking/lockdep: Print the right depth for chain key collision · 834494b2
      Yuyang Du authored
      
      
      Since chains are separated by IRQ context, so when printing a chain the
      depth should be consistent with it.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-6-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      834494b2
    • Yuyang Du's avatar
      locking/lockdep: Remove useless conditional macro · e7a38f63
      Yuyang Du authored
      
      
      Since #defined(CONFIG_PROVE_LOCKING) is used in the scope of #ifdef
      CONFIG_PROVE_LOCKING, it can be removed.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-5-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      e7a38f63
    • Yuyang Du's avatar
      locking/lockdep: Adjust lock usage bit character checks · c52478f4
      Yuyang Du authored
      
      
      The lock usage bit characters are defined and determined with tricks.
      Add some explanation to make it a bit clearer, then adjust the logic to
      check the usage, which optimizes the code a bit.
      
      No functional change.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-4-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c52478f4
    • Yuyang Du's avatar
      locking/lockdep: Add description and explanation in lockdep design doc · c01fbbc8
      Yuyang Du authored
      
      
      More words are added to lockdep design document regarding key concepts,
      which should help people without lockdep experience read and understand
      lockdep reports.
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-3-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c01fbbc8
    • Yuyang Du's avatar
      locking/lockdep: Change all print_*() return type to void · f7c1c6b3
      Yuyang Du authored
      
      
      Since none of the print_*() function's return value is necessary, change
      their return type to void. No functional change.
      
      In cases where an invariable return value is used, this change slightly
      improves readability, i.e.:
      
      	print_x();
      	return 0;
      
      is definitely better than:
      
      	return print_x(); /* where print_x() always returns 0 */
      
      Signed-off-by: default avatarYuyang Du <duyuyang@gmail.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: bvanassche@acm.org
      Cc: frederic@kernel.org
      Cc: ming.lei@redhat.com
      Cc: will.deacon@arm.com
      Link: https://lkml.kernel.org/r/20190506081939.74287-2-duyuyang@gmail.com
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      f7c1c6b3
    • Ingo Molnar's avatar
      26b73da3
    • Linus Torvalds's avatar
      Linux 5.2-rc3 · f2c7c76c
      Linus Torvalds authored
      v5.2-rc3
      f2c7c76c
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7bd1d5ed
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Two fixes: a quirk for KVM guests running on certain AMD CPUs, and a
        KASAN related build fix"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/CPU/AMD: Don't force the CPB cap when running under a hypervisor
        x86/boot: Provide KASAN compatible aliases for string routines
      7bd1d5ed
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6751b8d9
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "On the kernel side there's a bunch of ring-buffer ordering fixes for a
        reproducible bug, plus a PEBS constraints regression fix.
      
        Plus tooling fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tools headers UAPI: Sync kvm.h headers with the kernel sources
        perf record: Fix s390 missing module symbol and warning for non-root users
        perf machine: Read also the end of the kernel
        perf test vmlinux-kallsyms: Ignore aliases to _etext when searching on kallsyms
        perf session: Add missing swap ops for namespace events
        perf namespace: Protect reading thread's namespace
        tools headers UAPI: Sync drm/drm.h with the kernel
        tools headers UAPI: Sync drm/i915_drm.h with the kernel
        tools headers UAPI: Sync linux/fs.h with the kernel
        tools headers UAPI: Sync linux/sched.h with the kernel
        tools arch x86: Sync asm/cpufeatures.h with the with the kernel
        tools include UAPI: Update copy of files related to new fspick, fsmount, fsconfig, fsopen, move_mount and open_tree syscalls
        perf arm64: Fix mksyscalltbl when system kernel headers are ahead of the kernel
        perf data: Fix 'strncat may truncate' build failure with recent gcc
        perf/ring-buffer: Use regular variables for nesting
        perf/ring-buffer: Always use {READ,WRITE}_ONCE() for rb->user_page data
        perf/ring_buffer: Add ordering to rb->nest increment
        perf/ring_buffer: Fix exposing a temporarily decreased data_head
        perf/x86/intel/ds: Fix EVENT vs. UEVENT PEBS constraints
      6751b8d9
    • Linus Torvalds's avatar
      Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · af042452
      Linus Torvalds authored
      Pull EFI fixes from Ingo Molnar:
       "Two EFI fixes: a quirk for weird systabs, plus add more robust error
        handling in the old 1:1 mapping code"
      
      * 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi: Allow the number of EFI configuration tables entries to be zero
        efi/x86/Add missing error handling to old_memmap 1:1 mapping code
      af042452
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4fb5741c
      Linus Torvalds authored
      Pull stacktrace fix from Ingo Molnar:
       "Fix a stack_trace_save_tsk_reliable() regression"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        stacktrace: Unbreak stack_trace_save_tsk_reliable()
      4fb5741c
    • Linus Torvalds's avatar
      Merge tag 'spdx-5.2-rc3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · a68dc618
      Linus Torvalds authored
      Pull SPDX fixes from Greg KH:
       "Here are just two small patches, that fix up some found SPDX
        identifier issues.
      
        The first patch fixes an error in a previous SPDX fixup patch, that
        causes build errors when doing 'make clean' on the tree (the fact that
        almost no one noticed it reflects the fact that kernel developers
        don't like doing that option very often...)
      
        The second patch fixes up a number of places in the tree where people
        mistyped the string "SPDX-License-Identifier". Given that people can
        not even type their own name all the time without mistakes, this was
        bound to happen, and odds are, we will have to add some type of check
        for this to checkpatch.pl to catch this happening in the future.
      
        Both of these have passed testing by 0-day"
      
      * tag 'spdx-5.2-rc3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        treewide: fix typos of SPDX-License-Identifier
        crypto: ux500 - fix license comment syntax error
      a68dc618
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 460b48a0
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "A minor fix to our IMC PMU code to print a less confusing error
        message when the driver can't initialise properly.
      
        A fix for a bug where a user requesting an unsupported branch sampling
        filter can corrupt PMU state, preventing the PMU from counting
        properly.
      
        And finally a fix for a bug in our support for kexec_file_load(),
        which prevented loading a kernel and initramfs. Most versions of kexec
        don't yet use kexec_file_load().
      
        Thanks to: Anju T Sudhakar, Dave Young, Madhavan Srinivasan, Ravi
        Bangoria, Thiago Jung Bauermann"
      
      * tag 'powerpc-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/kexec: Fix loading of kernel + initramfs with kexec_file_load()
        powerpc/perf: Fix MMCRA corruption by bhrb_filter
        powerpc/powernv: Return for invalid IMC domain
      460b48a0
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · b44a1dd3
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "Fixes for PPC and s390"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: PPC: Book3S HV: Restore SPRG3 in kvmhv_p9_guest_entry()
        KVM: PPC: Book3S HV: Fix lockdep warning when entering guest on POWER9
        KVM: PPC: Book3S HV: XIVE: Fix page offset when clearing ESB pages
        KVM: PPC: Book3S HV: XIVE: Take the srcu read lock when accessing memslots
        KVM: PPC: Book3S HV: XIVE: Do not clear IRQ data of passthrough interrupts
        KVM: PPC: Book3S HV: XIVE: Introduce a new mutex for the XIVE device
        KVM: PPC: Book3S HV: XIVE: Fix the enforced limit on the vCPU identifier
        KVM: PPC: Book3S HV: XIVE: Do not test the EQ flag validity when resetting
        KVM: PPC: Book3S HV: XIVE: Clear file mapping when device is released
        KVM: PPC: Book3S HV: Don't take kvm->lock around kvm_for_each_vcpu
        KVM: PPC: Book3S: Use new mutex to synchronize access to rtas token list
        KVM: PPC: Book3S HV: Use new mutex to synchronize MMU setup
        KVM: PPC: Book3S HV: Avoid touching arch.mmu_ready in XIVE release functions
        KVM: s390: Do not report unusabled IDs via KVM_CAP_MAX_VCPU_ID
        kvm: fix compile on s390 part 2
      b44a1dd3
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 38baf0bb
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "A memleak fix for the core, two driver bugfixes, as well as fixing
        missing file patterns to MAINTAINERS"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        MAINTAINERS: add I2C DT bindings to ARM platforms
        MAINTAINERS: add DT bindings to i2c drivers
        i2c: synquacer: fix synquacer_i2c_doxfer() return value
        i2c: mlxcpld: Fix wrong initialization order in probe
        i2c: dev: fix potential memory leak in i2cdev_ioctl_rdwr
      38baf0bb
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal · 378e853f
      Linus Torvalds authored
      Pull thermal SoC fix from Eduardo Valentin:
       "A single revert, detected to cause issues on the tsens driver"
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal:
        Revert "drivers: thermal: tsens: Add new operation to check if a sensor is enabled"
      378e853f
    • Linus Torvalds's avatar
      Merge tag 'led-fixes-for-5.2-rc3' of... · f58c356e
      Linus Torvalds authored
      Merge tag 'led-fixes-for-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
      
      Pull LED fix from Jacek Anaszewski:
       "Fix for a recent change in LED core, that didn't take into account the
        possibility of calling led_blink_setup() from atomic context"
      
      * tag 'led-fixes-for-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
        leds: avoid flush_work in atomic context
      f58c356e
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20190601' of git://git.kernel.dk/linux-block · 9221dced
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - A set of patches fixing code comments / kerneldoc (Bart)
      
       - Don't allow loop file change for exclusive open (Jan)
      
       - Fix revalidate of hidden genhd (Jan)
      
       - Init queue failure memory free fix (Jes)
      
       - Improve rq limits failure print (John)
      
       - Fixup for queue removal/addition (Ming)
      
       - Missed error progagation for io_uring buffer registration (Pavel)
      
      * tag 'for-linus-20190601' of git://git.kernel.dk/linux-block:
        block: print offending values when cloned rq limits are exceeded
        blk-mq: Document the blk_mq_hw_queue_to_node() arguments
        blk-mq: Fix spelling in a source code comment
        block: Fix bsg_setup_queue() kernel-doc header
        block: Fix rq_qos_wait() kernel-doc header
        block: Fix blk_mq_*_map_queues() kernel-doc headers
        block: Fix throtl_pending_timer_fn() kernel-doc header
        block: Convert blk_invalidate_devt() header into a non-kernel-doc header
        block/partitions/ldm: Convert a kernel-doc header into a non-kernel-doc header
        blk-mq: Fix memory leak in error handling
        block: don't protect generic_make_request_checks with blk_queue_enter
        block: move blk_exit_queue into __blk_release_queue
        block: Don't revalidate bdev of hidden gendisk
        loop: Don't change loop device under exclusive opener
        io_uring: Fix __io_uring_register() false success
      9221dced
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 1975b337
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Six minor fixes to device drivers and one to the multipath alua
        handler.
      
        The most extensive fix is the zfcp port remove prevention one, but
        it's impact is only s390"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: libsas: delete sas port if expander discover failed
        scsi: libsas: only clear phy->in_shutdown after shutdown event done
        scsi: scsi_dh_alua: Fix possible null-ptr-deref
        scsi: smartpqi: properly set both the DMA mask and the coherent DMA mask
        scsi: zfcp: fix to prevent port_remove with pure auto scan LUNs (only sdevs)
        scsi: zfcp: fix missing zfcp_port reference put on -EBUSY from port_remove
        scsi: libcxgbi: add a check for NULL pointer in cxgbi_check_route()
      1975b337
  2. Jun 02, 2019
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 7b3064f0
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "Various fixes and followups"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm, compaction: make sure we isolate a valid PFN
        include/linux/generic-radix-tree.h: fix kerneldoc comment
        kernel/signal.c: trace_signal_deliver when signal_group_exit
        drivers/iommu/intel-iommu.c: fix variable 'iommu' set but not used
        spdxcheck.py: fix directory structures
        kasan: initialize tag to 0xff in __kasan_kmalloc
        z3fold: fix sheduling while atomic
        scripts/gdb: fix invocation when CONFIG_COMMON_CLK is not set
        mm/gup: continue VM_FAULT_RETRY processing even for pre-faults
        ocfs2: fix error path kobject memory leak
        memcg: make it work on sparse non-0-node systems
        mm, memcg: consider subtrees in memory.events
        prctl_set_mm: downgrade mmap_sem to read lock
        prctl_set_mm: refactor checks from validate_prctl_map
        kernel/fork.c: make max_threads symbol static
        arch/arm/boot/compressed/decompress.c: fix build error due to lz4 changes
        arch/parisc/configs/c8000_defconfig: remove obsoleted CONFIG_DEBUG_SLAB_LEAK
        mm/vmalloc.c: fix typo in comment
        lib/sort.c: fix kernel-doc notation warnings
        mm: fix Documentation/vm/hmm.rst Sphinx warnings
      7b3064f0
    • Suzuki K Poulose's avatar
      mm, compaction: make sure we isolate a valid PFN · e577c8b6
      Suzuki K Poulose authored
      When we have holes in a normal memory zone, we could endup having
      cached_migrate_pfns which may not necessarily be valid, under heavy memory
      pressure with swapping enabled ( via __reset_isolation_suitable(),
      triggered by kswapd).
      
      Later if we fail to find a page via fast_isolate_freepages(), we may end
      up using the migrate_pfn we started the search with, as valid page.  This
      could lead to accessing NULL pointer derefernces like below, due to an
      invalid mem_section pointer.
      
      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008 [47/1825]
       Mem abort info:
         ESR = 0x96000004
         Exception class = DABT (current EL), IL = 32 bits
         SET = 0, FnV = 0
         EA = 0, S1PTW = 0
       Data abort info:
         ISV = 0, ISS = 0x00000004
         CM = 0, WnR = 0
       user pgtable: 4k pages, 48-bit VAs, pgdp = 0000000082f94ae9
       [0000000000000008] pgd=0000000000000000
       Internal error: Oops: 96000004 [#1] SMP
       ...
       CPU: 10 PID: 6080 Comm: qemu-system-aar Not tainted 510-rc1+ #6
       Hardware name: AmpereComputing(R) OSPREY EV-883832-X3-0001/OSPREY, BIOS 4819 09/25/2018
       pstate: 60000005 (nZCv daif -PAN -UAO)
       pc : set_pfnblock_flags_mask+0x58/0xe8
       lr : compaction_alloc+0x300/0x950
       [...]
       Process qemu-system-aar (pid: 6080, stack limit = 0x0000000095070da5)
       Call trace:
        set_pfnblock_flags_mask+0x58/0xe8
        compaction_alloc+0x300/0x950
        migrate_pages+0x1a4/0xbb0
        compact_zone+0x750/0xde8
        compact_zone_order+0xd8/0x118
        try_to_compact_pages+0xb4/0x290
        __alloc_pages_direct_compact+0x84/0x1e0
        __alloc_pages_nodemask+0x5e0/0xe18
        alloc_pages_vma+0x1cc/0x210
        do_huge_pmd_anonymous_page+0x108/0x7c8
        __handle_mm_fault+0xdd4/0x1190
        handle_mm_fault+0x114/0x1c0
        __get_user_pages+0x198/0x3c0
        get_user_pages_unlocked+0xb4/0x1d8
        __gfn_to_pfn_memslot+0x12c/0x3b8
        gfn_to_pfn_prot+0x4c/0x60
        kvm_handle_guest_abort+0x4b0/0xcd8
        handle_exit+0x140/0x1b8
        kvm_arch_vcpu_ioctl_run+0x260/0x768
        kvm_vcpu_ioctl+0x490/0x898
        do_vfs_ioctl+0xc4/0x898
        ksys_ioctl+0x8c/0xa0
        __arm64_sys_ioctl+0x28/0x38
        el0_svc_common+0x74/0x118
        el0_svc_handler+0x38/0x78
        el0_svc+0x8/0xc
       Code: f8607840 f100001f 8b011401 9a801020 (f9400400)
       ---[ end trace af6a35219325a9b6 ]---
      
      The issue was reported on an arm64 server with 128GB with holes in the
      zone (e.g, [32GB@4GB, 96GB@544GB]), with a swap device enabled, while
      running 100 KVM guest instances.
      
      This patch fixes the issue by ensuring that the page belongs to a valid
      PFN when we fallback to using the lower limit of the scan range upon
      failure in fast_isolate_freepages().
      
      Link: http://lkml.kernel.org/r/1558711908-15688-1-git-send-email-suzuki.poulose@arm.com
      Fixes: 5a811889
      
       ("mm, compaction: use free lists to quickly locate a migration target")
      Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
      Reported-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Reviewed-by: default avatarMel Gorman <mgorman@techsingularity.net>
      Reviewed-by: default avatarAnshuman Khandual <anshuman.khandual@arm.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Qian Cai <cai@lca.pw>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e577c8b6
    • Jonathan Corbet's avatar
      include/linux/generic-radix-tree.h: fix kerneldoc comment · 590ba22b
      Jonathan Corbet authored
      
      
      The DOC comment block section in include/linux/generic-radix-tree.h
      contained a spurious colon, causing this warning in the documentation
      build:
      
        include/linux/generic-radix-tree.h:1: warning: no structured comments found
      
      Remove the colon and make the docs build happy.
      
      Link: http://lkml.kernel.org/r/20190524141933.74ae9050@lwn.net
      Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Kent Overstreet <kent.overstreet@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      590ba22b
    • Zhenliang Wei's avatar
      kernel/signal.c: trace_signal_deliver when signal_group_exit · 98af37d6
      Zhenliang Wei authored
      In the fixes commit, removing SIGKILL from each thread signal mask and
      executing "goto fatal" directly will skip the call to
      "trace_signal_deliver".  At this point, the delivery tracking of the
      SIGKILL signal will be inaccurate.
      
      Therefore, we need to add trace_signal_deliver before "goto fatal" after
      executing sigdelset.
      
      Note: SEND_SIG_NOINFO matches the fact that SIGKILL doesn't have any info.
      
      Link: http://lkml.kernel.org/r/20190425025812.91424-1-weizhenliang@huawei.com
      Fixes: cf43a757
      
       ("signal: Restore the stop PTRACE_EVENT_EXIT")
      Signed-off-by: default avatarZhenliang Wei <weizhenliang@huawei.com>
      Reviewed-by: default avatarChristian Brauner <christian@brauner.io>
      Reviewed-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Cc: Ivan Delalande <colona@arista.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Deepa Dinamani <deepa.kernel@gmail.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      98af37d6
    • Qian Cai's avatar
      drivers/iommu/intel-iommu.c: fix variable 'iommu' set but not used · d3ed71e5
      Qian Cai authored
      Commit cf04eee8
      
       ("iommu/vt-d: Include ACPI devices in iommu=pt")
      added for_each_active_iommu() in iommu_prepare_static_identity_mapping()
      but never used the each element, i.e, "drhd->iommu".
      
      drivers/iommu/intel-iommu.c: In function
      'iommu_prepare_static_identity_mapping':
      drivers/iommu/intel-iommu.c:3037:22: warning: variable 'iommu' set but
      not used [-Wunused-but-set-variable]
       struct intel_iommu *iommu;
      
      Fixed the warning by appending a compiler attribute __maybe_unused for it.
      
      Link: http://lkml.kernel.org/r/20190523013314.2732-1-cai@lca.pw
      Signed-off-by: default avatarQian Cai <cai@lca.pw>
      Suggested-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Joerg Roedel <jroedel@suse.de>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d3ed71e5