]> Git Repo - linux.git/commitdiff
Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <[email protected]>
Sun, 24 Jun 2018 11:36:16 +0000 (19:36 +0800)
committerLinus Torvalds <[email protected]>
Sun, 24 Jun 2018 11:36:16 +0000 (19:36 +0800)
Pull locking fixes from Thomas Gleixner:
 "A set of fixes and updates for the locking code:

   - Prevent lockdep from updating irq state within its own code and
     thereby confusing itself.

   - Buid fix for older GCCs which mistreat anonymous unions

   - Add a missing lockdep annotation in down_read_non_onwer() which
     causes up_read_non_owner() to emit a lockdep splat

   - Remove the custom alpha dec_and_lock() implementation which is
     incorrect in terms of ordering and use the generic one.

  The remaining two commits are not strictly fixes. They provide irqsave
  variants of atomic_dec_and_lock() and refcount_dec_and_lock(). These
  are required to merge the relevant updates and cleanups into different
  maintainer trees for 4.19, so routing them into mainline without
  actual users is the sanest approach.

  They should have been in -rc1, but last weekend I took the liberty to
  just avoid computers in order to regain some mental sanity"

* 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  locking/qspinlock: Fix build for anonymous union in older GCC compilers
  locking/lockdep: Do not record IRQ state within lockdep code
  locking/rwsem: Fix up_read_non_owner() warning with DEBUG_RWSEMS
  locking/refcounts: Implement refcount_dec_and_lock_irqsave()
  atomic: Add irqsave variant of atomic_dec_and_lock()
  alpha: Remove custom dec_and_lock() implementation

1  2 
lib/Makefile

diff --combined lib/Makefile
index 8153fdab287f5250496504c1d24c34d78b82fc4f,8b59f4a7c0e207b0d5447983bf7a5d6ba4f44382..90dc5520b7849dc69dc4c3df3ea419c45e9451cc
@@@ -23,12 -23,15 +23,12 @@@ lib-y := ctype.o string.o vsprintf.o cm
         sha1.o chacha20.o irq_regs.o argv_split.o \
         flex_proportions.o ratelimit.o show_mem.o \
         is_single_threaded.o plist.o decompress.o kobject_uevent.o \
-        earlycpio.o seq_buf.o siphash.o \
+        earlycpio.o seq_buf.o siphash.o dec_and_lock.o \
         nmi_backtrace.o nodemask.o win_minmax.o
  
  lib-$(CONFIG_PRINTK) += dump_stack.o
  lib-$(CONFIG_MMU) += ioremap.o
  lib-$(CONFIG_SMP) += cpumask.o
 -lib-$(CONFIG_DMA_DIRECT_OPS) += dma-direct.o
 -lib-$(CONFIG_DMA_NONCOHERENT_OPS) += dma-noncoherent.o
 -lib-$(CONFIG_DMA_VIRT_OPS) += dma-virt.o
  
  lib-y += kobject.o klist.o
  obj-y += lockref.o
@@@ -95,10 -98,6 +95,6 @@@ obj-$(CONFIG_DEBUG_PREEMPT) += smp_proc
  obj-$(CONFIG_DEBUG_LIST) += list_debug.o
  obj-$(CONFIG_DEBUG_OBJECTS) += debugobjects.o
  
- ifneq ($(CONFIG_HAVE_DEC_LOCK),y)
-   lib-y += dec_and_lock.o
- endif
  obj-$(CONFIG_BITREVERSE) += bitrev.o
  obj-$(CONFIG_RATIONAL)        += rational.o
  obj-$(CONFIG_CRC_CCITT)       += crc-ccitt.o
@@@ -145,6 -144,7 +141,6 @@@ obj-$(CONFIG_SMP) += percpu_counter.
  obj-$(CONFIG_AUDIT_GENERIC) += audit.o
  obj-$(CONFIG_AUDIT_COMPAT_GENERIC) += compat_audit.o
  
 -obj-$(CONFIG_SWIOTLB) += swiotlb.o
  obj-$(CONFIG_IOMMU_HELPER) += iommu-helper.o
  obj-$(CONFIG_FAULT_INJECTION) += fault-inject.o
  obj-$(CONFIG_NOTIFIER_ERROR_INJECTION) += notifier-error-inject.o
@@@ -165,6 -165,8 +161,6 @@@ obj-$(CONFIG_NLATTR) += nlattr.
  
  obj-$(CONFIG_LRU_CACHE) += lru_cache.o
  
 -obj-$(CONFIG_DMA_API_DEBUG) += dma-debug.o
 -
  obj-$(CONFIG_GENERIC_CSUM) += checksum.o
  
  obj-$(CONFIG_GENERIC_ATOMIC64) += atomic64.o
@@@ -255,9 -257,9 +251,9 @@@ obj-$(CONFIG_SBITMAP) += sbitmap.
  obj-$(CONFIG_PARMAN) += parman.o
  
  # GCC library routines
 -obj-$(CONFIG_GENERIC_ASHLDI3) += ashldi3.o
 -obj-$(CONFIG_GENERIC_ASHRDI3) += ashrdi3.o
 -obj-$(CONFIG_GENERIC_LSHRDI3) += lshrdi3.o
 -obj-$(CONFIG_GENERIC_MULDI3) += muldi3.o
 -obj-$(CONFIG_GENERIC_CMPDI2) += cmpdi2.o
 -obj-$(CONFIG_GENERIC_UCMPDI2) += ucmpdi2.o
 +obj-$(CONFIG_GENERIC_LIB_ASHLDI3) += ashldi3.o
 +obj-$(CONFIG_GENERIC_LIB_ASHRDI3) += ashrdi3.o
 +obj-$(CONFIG_GENERIC_LIB_LSHRDI3) += lshrdi3.o
 +obj-$(CONFIG_GENERIC_LIB_MULDI3) += muldi3.o
 +obj-$(CONFIG_GENERIC_LIB_CMPDI2) += cmpdi2.o
 +obj-$(CONFIG_GENERIC_LIB_UCMPDI2) += ucmpdi2.o
This page took 0.097961 seconds and 4 git commands to generate.