Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull locking fixes from Ingo Molnar: "liblockdep fixes and mutex debugging fixes" * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: locking/mutex: Fix debug_mutexes tools/liblockdep: Add proper versioning to the shared obj tools/liblockdep: Ignore asmlinkage and visible
This commit is contained in:
commit
d99d5917e7
3 changed files with 16 additions and 21 deletions
|
@ -71,18 +71,17 @@ void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
|
|||
|
||||
void debug_mutex_unlock(struct mutex *lock)
|
||||
{
|
||||
if (unlikely(!debug_locks))
|
||||
return;
|
||||
if (likely(debug_locks)) {
|
||||
DEBUG_LOCKS_WARN_ON(lock->magic != lock);
|
||||
|
||||
DEBUG_LOCKS_WARN_ON(lock->magic != lock);
|
||||
if (!lock->owner)
|
||||
DEBUG_LOCKS_WARN_ON(!lock->owner);
|
||||
else
|
||||
DEBUG_LOCKS_WARN_ON(lock->owner != current);
|
||||
|
||||
if (!lock->owner)
|
||||
DEBUG_LOCKS_WARN_ON(!lock->owner);
|
||||
else
|
||||
DEBUG_LOCKS_WARN_ON(lock->owner != current);
|
||||
|
||||
DEBUG_LOCKS_WARN_ON(!lock->wait_list.prev && !lock->wait_list.next);
|
||||
mutex_clear_owner(lock);
|
||||
DEBUG_LOCKS_WARN_ON(!lock->wait_list.prev && !lock->wait_list.next);
|
||||
mutex_clear_owner(lock);
|
||||
}
|
||||
|
||||
/*
|
||||
* __mutex_slowpath_needs_to_unlock() is explicitly 0 for debug
|
||||
|
|
|
@ -1,13 +1,8 @@
|
|||
# liblockdep version
|
||||
LL_VERSION = 0
|
||||
LL_PATCHLEVEL = 0
|
||||
LL_EXTRAVERSION = 1
|
||||
|
||||
# file format version
|
||||
FILE_VERSION = 1
|
||||
|
||||
MAKEFLAGS += --no-print-directory
|
||||
|
||||
LIBLOCKDEP_VERSION=$(shell make -sC ../../.. kernelversion)
|
||||
|
||||
# Makefiles suck: This macro sets a default value of $(2) for the
|
||||
# variable named by $(1), unless the variable has been set by
|
||||
|
@ -98,7 +93,7 @@ export prefix libdir bindir src obj
|
|||
libdir_SQ = $(subst ','\'',$(libdir))
|
||||
bindir_SQ = $(subst ','\'',$(bindir))
|
||||
|
||||
LIB_FILE = liblockdep.a liblockdep.so
|
||||
LIB_FILE = liblockdep.a liblockdep.so.$(LIBLOCKDEP_VERSION)
|
||||
BIN_FILE = lockdep
|
||||
|
||||
CONFIG_INCLUDES =
|
||||
|
@ -110,8 +105,6 @@ N =
|
|||
|
||||
export Q VERBOSE
|
||||
|
||||
LIBLOCKDEP_VERSION = $(LL_VERSION).$(LL_PATCHLEVEL).$(LL_EXTRAVERSION)
|
||||
|
||||
INCLUDES = -I. -I/usr/local/include -I./uinclude -I./include $(CONFIG_INCLUDES)
|
||||
|
||||
# Set compile option CFLAGS if not set elsewhere
|
||||
|
@ -146,7 +139,7 @@ do_app_build = \
|
|||
|
||||
do_compile_shared_library = \
|
||||
($(print_shared_lib_compile) \
|
||||
$(CC) --shared $^ -o $@ -lpthread -ldl)
|
||||
$(CC) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='"$@"';$(shell ln -s $@ liblockdep.so))
|
||||
|
||||
do_build_static_lib = \
|
||||
($(print_static_lib_build) \
|
||||
|
@ -177,7 +170,7 @@ all: all_cmd
|
|||
|
||||
all_cmd: $(CMD_TARGETS)
|
||||
|
||||
liblockdep.so: $(PEVENT_LIB_OBJS)
|
||||
liblockdep.so.$(LIBLOCKDEP_VERSION): $(PEVENT_LIB_OBJS)
|
||||
$(Q)$(do_compile_shared_library)
|
||||
|
||||
liblockdep.a: $(PEVENT_LIB_OBJS)
|
||||
|
|
|
@ -10,6 +10,9 @@
|
|||
|
||||
#define MAX_LOCK_DEPTH 2000UL
|
||||
|
||||
#define asmlinkage
|
||||
#define __visible
|
||||
|
||||
#include "../../../include/linux/lockdep.h"
|
||||
|
||||
struct task_struct {
|
||||
|
|
Loading…
Reference in a new issue