Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cc76ee75 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull core locking changes from Ingo Molnar:
 "Main changes:

   - jump label asm preparatory work for PowerPC (Anton Blanchard)

   - rwsem optimizations and cleanups (Davidlohr Bueso)

   - mutex optimizations and cleanups (Jason Low)

   - futex fix (Oleg Nesterov)

   - remove broken atomicity checks from {READ,WRITE}_ONCE() (Peter
     Zijlstra)"

* 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  powerpc, jump_label: Include linux/jump_label.h to get HAVE_JUMP_LABEL define
  jump_label: Allow jump labels to be used in assembly
  jump_label: Allow asm/jump_label.h to be included in assembly
  locking/mutex: Further simplify mutex_spin_on_owner()
  locking: Remove atomicy checks from {READ,WRITE}_ONCE
  locking/rtmutex: Rename argument in the rt_mutex_adjust_prio_chain() documentation as well
  locking/rwsem: Fix lock optimistic spinning when owner is not running
  locking: Remove ACCESS_ONCE() usage
  locking/rwsem: Check for active lock before bailing on spinning
  locking/rwsem: Avoid deceiving lock spinners
  locking/rwsem: Set lock ownership ASAP
  locking/rwsem: Document barrier need when waking tasks
  locking/futex: Check PF_KTHREAD rather than !p->mm to filter out kthreads
  locking/mutex: Refactor mutex_spin_on_owner()
  locking/mutex: In mutex_spin_on_owner(), return true when owner changes
parents 9c65e12a 58995a9a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -779,6 +779,7 @@ KBUILD_ARFLAGS := $(call ar-option,D)
# check for 'asm goto'
ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y)
	KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
	KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO
endif

include $(srctree)/scripts/Makefile.kasan
+2 −3
Original line number Diff line number Diff line
#ifndef _ASM_ARM_JUMP_LABEL_H
#define _ASM_ARM_JUMP_LABEL_H

#ifdef __KERNEL__
#ifndef __ASSEMBLY__

#include <linux/types.h>

@@ -27,8 +27,6 @@ static __always_inline bool arch_static_branch(struct static_key *key)
	return true;
}

#endif /* __KERNEL__ */

typedef u32 jump_label_t;

struct jump_entry {
@@ -37,4 +35,5 @@ struct jump_entry {
	jump_label_t key;
};

#endif  /* __ASSEMBLY__ */
#endif
+4 −4
Original line number Diff line number Diff line
@@ -18,11 +18,12 @@
 */
#ifndef __ASM_JUMP_LABEL_H
#define __ASM_JUMP_LABEL_H

#ifndef __ASSEMBLY__

#include <linux/types.h>
#include <asm/insn.h>

#ifdef __KERNEL__

#define JUMP_LABEL_NOP_SIZE		AARCH64_INSN_SIZE

static __always_inline bool arch_static_branch(struct static_key *key)
@@ -39,8 +40,6 @@ static __always_inline bool arch_static_branch(struct static_key *key)
	return true;
}

#endif /* __KERNEL__ */

typedef u64 jump_label_t;

struct jump_entry {
@@ -49,4 +48,5 @@ struct jump_entry {
	jump_label_t key;
};

#endif  /* __ASSEMBLY__ */
#endif	/* __ASM_JUMP_LABEL_H */
+3 −4
Original line number Diff line number Diff line
@@ -8,9 +8,9 @@
#ifndef _ASM_MIPS_JUMP_LABEL_H
#define _ASM_MIPS_JUMP_LABEL_H

#include <linux/types.h>
#ifndef __ASSEMBLY__

#ifdef __KERNEL__
#include <linux/types.h>

#define JUMP_LABEL_NOP_SIZE 4

@@ -39,8 +39,6 @@ static __always_inline bool arch_static_branch(struct static_key *key)
	return true;
}

#endif /* __KERNEL__ */

#ifdef CONFIG_64BIT
typedef u64 jump_label_t;
#else
@@ -53,4 +51,5 @@ struct jump_entry {
	jump_label_t key;
};

#endif  /* __ASSEMBLY__ */
#endif /* _ASM_MIPS_JUMP_LABEL_H */
+1 −1
Original line number Diff line number Diff line
@@ -9,11 +9,11 @@
 * 2 of the License, or (at your option) any later version.
 */

#include <linux/jump_label.h>
#include <asm/ppc_asm.h>
#include <asm/hvcall.h>
#include <asm/asm-offsets.h>
#include <asm/opal.h>
#include <asm/jump_label.h>

	.section	".text"

Loading