lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20181023102607.GA43138@gmail.com>
Date:   Tue, 23 Oct 2018 12:26:07 +0200
From:   Ingo Molnar <mingo@...nel.org>
To:     Linus Torvalds <torvalds@...ux-foundation.org>
Cc:     linux-kernel@...r.kernel.org,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Peter Zijlstra <a.p.zijlstra@...llo.nl>,
        Thomas Gleixner <tglx@...utronix.de>,
        "Paul E. McKenney" <paulmck@...ibm.com>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Borislav Petkov <bp@...en8.de>
Subject: [GIT PULL] locking and misc x86 updates for v4.20

Linus,

Please pull the latest locking-core-for-linus git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking-core-for-linus

   # HEAD: 01a14bda11add9dcd4a59200f13834d634559935 locking/lockdep: Make global debug_locks* variables read-mostly

Lots of changes in this cycle - in part because locking/core attracted a 
number of related x86 low level work which was easier to handle in a 
single tree:

 - Linux Kernel Memory Consistency Model updates
   (Alan Stern, Paul E. McKenney, Andrea Parri)

 - lockdep scalability improvements and micro-optimizations (Waiman Long)

 - rwsem improvements (Waiman Long)

 - spinlock micro-optimization (Matthew Wilcox)

 - qspinlocks: Provide a liveness guarantee (more fairness) on x86. 
  (Peter Zijlstra)

 - Add support for relative references in jump tables on arm64, x86 and 
   s390 to optimize jump labels (Ard Biesheuvel, Heiko Carstens)

 - Be a lot less permissive on weird (kernel address) uaccess faults on
   x86: BUG() when uaccess helpers fault on kernel addresses (Jann Horn)

 - macrofy x86 asm statements to un-confuse the GCC inliner. (Nadav Amit)

 - ... and a handful of other smaller changes as well.

 Thanks,

	Ingo

------------------>
Adam Borowski (1):
      x86/defconfig: Enable CONFIG_USB_XHCI_HCD=y

Alan Stern (1):
      tools/memory-model: Add extra ordering for locks and remove it for ordinary release/acquire

Andrea Parri (1):
      locking/memory-barriers: Replace smp_cond_acquire() with smp_cond_load_acquire()

Andrew Murray (1):
      Documentation/lockstat: Fix trivial typo

Ard Biesheuvel (10):
      jump_label: Abstract jump_entry member accessors
      jump_label: Implement generic support for relative references
      arm64/kernel: jump_label: Switch to relative references
      x86: Add support for 64-bit place relative relocations
      x86/jump_label: Switch to jump_entry accessors
      x86/jump_table: Use relative references
      jump_label: Annotate entries that operate on __init code earlier
      jump_table: Move entries into ro_after_init region
      s390/vmlinux.lds: Move JUMP_TABLE_DATA into output section
      jump_label: Fix NULL dereference bug in __jump_label_mod_update()

Borislav Petkov (1):
      jump_label: Use static_key_linked() accessor

Heiko Carstens (1):
      s390/jump_label: Switch to relative references

Jann Horn (7):
      x86/kprobes: Refactor kprobes_fault() like kprobe_exceptions_notify()
      x86/kprobes: Inline kprobe_exceptions_notify() into do_general_protection()
      x86/kprobes: Stop calling fixup_exception() from kprobe_fault_handler()
      x86/extable: Introduce _ASM_EXTABLE_UA for uaccess fixups
      x86/fault: Plumb error code and fault address through to fault handlers
      x86/fault: BUG() when uaccess helpers fault on kernel addresses
      lkdtm: Test copy_to_user() on bad kernel pointer under KERNEL_DS

Lance Roy (1):
      futex: Replace spin_is_locked() with lockdep

Masahiro Yamada (1):
      x86/build: Remove unused CONFIG_AS_CRC32

Matthew Wilcox (1):
      locking/spinlocks: Remove an instruction from spin and write locks

Nadav Amit (10):
      kbuild/arch/xtensa: Define LINKER_SCRIPT for the linker script
      kbuild/Makefile: Prepare for using macros in inline assembly code to work around asm() related GCC inlining bugs
      x86/objtool: Use asm macros to work around GCC inlining bugs
      x86/refcount: Work around GCC inlining bug
      x86/alternatives: Macrofy lock prefixes to work around GCC inlining bugs
      x86/bug: Macrofy the BUG table section handling, to work around GCC inlining bugs
      x86/paravirt: Work around GCC inlining bugs when compiling paravirt ops
      x86/extable: Macrofy inline assembly code to work around GCC inlining bugs
      x86/cpufeature: Macrofy inline assembly code to work around GCC inlining bugs
      x86/jump-labels: Macrofy inline assembly code to work around GCC inlining bugs

Paul E. McKenney (2):
      tools/memory-model: Add litmus-test naming scheme
      tools/memory-model: Add more LKMM limitations

Peter Zijlstra (6):
      jump_label/lockdep: Assert we hold the hotplug lock for _cpuslocked() operations
      locking/lockdep, cpu/hotplug: Annotate AP thread
      locking/qspinlock: Re-order code
      locking/qspinlock: Rework some comments
      x86/asm: 'Simplify' GEN_*_RMWcc() macros
      locking/qspinlock, x86: Provide liveness guarantee

SeongJae Park (1):
      tools/memory-model: Fix a README typo

Steven Rostedt (VMware) (1):
      locking/rtmutex: Fix the preprocessor logic with normal #ifdef #else #endif

Waiman Long (11):
      locking/rwsem: Exit read lock slowpath if queue empty & no writer
      locking/rwsem: Make owner store task pointer of last owning reader
      locking/lockdep: Remove add_chain_cache_classes()
      locking/lockdep: Eliminate redundant IRQs check in __lock_acquire()
      locking/lockdep: Add a faster path in __lock_release()
      locking/lockdep: Make class->ops a percpu counter and move it under CONFIG_DEBUG_LOCKDEP=y
      locking/lockdep: Remove duplicated 'lock_class_ops' percpu array
      locking/qspinlock_stat: Count instances of nested lock slowpaths
      locking/pvqspinlock: Extend node size when pvqspinlock is configured
      locking/lockdep: Fix debug_locks off performance problem
      locking/lockdep: Make global debug_locks* variables read-mostly


 Documentation/locking/lockstat.txt                 |   2 +-
 Documentation/memory-barriers.txt                  |   3 +-
 Makefile                                           |   9 +-
 arch/Kconfig                                       |   3 +
 arch/arm64/Kconfig                                 |   1 +
 arch/arm64/include/asm/jump_label.h                |  38 ++---
 arch/arm64/kernel/jump_label.c                     |   6 +-
 arch/s390/Kconfig                                  |   1 +
 arch/s390/include/asm/jump_label.h                 |  40 ++---
 arch/s390/kernel/jump_label.c                      |  11 +-
 arch/s390/kernel/vmlinux.lds.S                     |   1 +
 arch/x86/Kconfig                                   |   1 +
 arch/x86/Makefile                                  |   8 +-
 arch/x86/configs/i386_defconfig                    |   1 +
 arch/x86/configs/x86_64_defconfig                  |   1 +
 arch/x86/entry/calling.h                           |   2 +-
 arch/x86/include/asm/alternative-asm.h             |  20 ++-
 arch/x86/include/asm/alternative.h                 |  11 +-
 arch/x86/include/asm/asm.h                         |  57 +++----
 arch/x86/include/asm/atomic.h                      |   8 +-
 arch/x86/include/asm/atomic64_64.h                 |   8 +-
 arch/x86/include/asm/bitops.h                      |   9 +-
 arch/x86/include/asm/bug.h                         |  98 ++++++-----
 arch/x86/include/asm/cpufeature.h                  |  82 +++++----
 arch/x86/include/asm/elf.h                         |   3 +-
 arch/x86/include/asm/extable.h                     |   3 +-
 arch/x86/include/asm/fpu/internal.h                |   2 +-
 arch/x86/include/asm/futex.h                       |   6 +-
 arch/x86/include/asm/jump_label.h                  |  80 ++-------
 arch/x86/include/asm/local.h                       |   8 +-
 arch/x86/include/asm/paravirt_types.h              |  56 +++----
 arch/x86/include/asm/preempt.h                     |   2 +-
 arch/x86/include/asm/ptrace.h                      |   2 +
 arch/x86/include/asm/qspinlock.h                   |  15 ++
 arch/x86/include/asm/refcount.h                    |  79 +++++----
 arch/x86/include/asm/rmwcc.h                       |  69 ++++----
 arch/x86/include/asm/uaccess.h                     |  22 +--
 arch/x86/kernel/cpu/mcheck/mce.c                   |   2 +-
 arch/x86/kernel/jump_label.c                       |  62 +++----
 arch/x86/kernel/kprobes/core.c                     |  38 -----
 arch/x86/kernel/macros.S                           |  16 ++
 arch/x86/kernel/module.c                           |   6 +
 arch/x86/kernel/traps.c                            |  16 +-
 arch/x86/lib/checksum_32.S                         |   4 +-
 arch/x86/lib/copy_user_64.S                        |  90 +++++-----
 arch/x86/lib/csum-copy_64.S                        |   8 +-
 arch/x86/lib/getuser.S                             |  12 +-
 arch/x86/lib/putuser.S                             |  10 +-
 arch/x86/lib/usercopy_32.c                         | 126 +++++++-------
 arch/x86/lib/usercopy_64.c                         |   4 +-
 arch/x86/mm/extable.c                              | 114 +++++++++++--
 arch/x86/mm/fault.c                                |  26 +--
 arch/x86/tools/relocs.c                            |  10 ++
 arch/x86/um/asm/elf.h                              |   3 +-
 arch/xtensa/kernel/Makefile                        |   4 +-
 drivers/misc/lkdtm/core.c                          |   1 +
 drivers/misc/lkdtm/lkdtm.h                         |   1 +
 drivers/misc/lkdtm/usercopy.c                      |  13 ++
 fs/namespace.c                                     |   2 +
 include/asm-generic/bug.h                          |   8 +-
 include/asm-generic/qrwlock.h                      |   7 +-
 include/asm-generic/qspinlock.h                    |  16 +-
 include/asm-generic/vmlinux.lds.h                  |  11 +-
 include/linux/compiler.h                           |  56 +++++--
 include/linux/debug_locks.h                        |   4 +-
 include/linux/jump_label.h                         |  65 ++++++-
 include/linux/lockdep.h                            |   7 +-
 include/linux/rwsem.h                              |   4 +-
 include/linux/sched.h                              |   6 +
 init/main.c                                        |   1 -
 kernel/cpu.c                                       |  28 ++++
 kernel/futex.c                                     |   4 +-
 kernel/jump_label.c                                | 107 ++++++------
 kernel/locking/lockdep.c                           | 116 ++++---------
 kernel/locking/lockdep_internals.h                 |  27 +++
 kernel/locking/lockdep_proc.c                      |   2 +-
 kernel/locking/qspinlock.c                         | 143 +++++++++++-----
 kernel/locking/qspinlock_paravirt.h                |   4 +-
 kernel/locking/qspinlock_stat.h                    |   6 +
 kernel/locking/rtmutex.c                           |   4 +-
 kernel/locking/rwsem-xadd.c                        |  15 +-
 kernel/locking/rwsem.c                             |   7 +-
 kernel/locking/rwsem.h                             |  95 ++++++++---
 kernel/module.c                                    |   9 +
 lib/debug_locks.c                                  |   6 +-
 mm/maccess.c                                       |   6 +
 scripts/Kbuild.include                             |   4 +-
 scripts/mod/Makefile                               |   2 +
 tools/memory-model/Documentation/explanation.txt   | 186 ++++++++++++++++-----
 tools/memory-model/Documentation/recipes.txt       |   2 +-
 tools/memory-model/README                          |  39 +++++
 tools/memory-model/linux-kernel.cat                |   8 +-
 .../ISA2+pooncelock+pooncelock+pombonce.litmus     |   7 +-
 tools/memory-model/litmus-tests/README             | 104 +++++++++++-
 tools/objtool/special.c                            |   4 +-
 95 files changed, 1522 insertions(+), 934 deletions(-)
 create mode 100644 arch/x86/kernel/macros.S

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ