From 3752466b6bf04868296ac6bc27ea1765008636d8 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 25 May 2017 12:58:31 +0000 Subject: tools/lib/lockdep: Fix undefined symbol prandom_u32 __lock_pin_lock() now calls prandom_u32() which is not defined in liblockdep. __lock_pin_lock() and its caller lock_pin_lock() are dead code in liblockdep, but we still need to provide a definition of prandom_u32() in case lazy binding is disabled. Signed-off-by: Ben Hutchings Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Fixes: e7904a28f533 ("locking/lockdep, sched/core: Implement a better ...") Link: http://lkml.kernel.org/r/20170525130005.5947-2-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/lockdep.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/lockdep.c b/tools/lib/lockdep/lockdep.c index a0a2e3a266af..443acb11f907 100644 --- a/tools/lib/lockdep/lockdep.c +++ b/tools/lib/lockdep/lockdep.c @@ -1,8 +1,15 @@ #include +#include /* Trivial API wrappers, we don't (yet) have RCU in user-space: */ #define hlist_for_each_entry_rcu hlist_for_each_entry #define hlist_add_head_rcu hlist_add_head #define hlist_del_rcu hlist_del +u32 prandom_u32(void) +{ + /* Used only by lock_pin_lock() which is dead code */ + abort(); +} + #include "../../../kernel/locking/lockdep.c" -- cgit v1.2.3 From 98dcea0cfd04e083ac74137ceb9a632604740e2d Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 25 May 2017 12:58:33 +0000 Subject: tools/lib/lockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing lock_chain/: Depth liblockdep has been broken since commit 75dd602a5198 ("lockdep: Fix lock_chain::base size"), as that adds a check that MAX_LOCK_DEPTH is within the range of lock_chain::depth and in liblockdep it is much too large. That should have resulted in a compiler error, but didn't because: - the check uses ARRAY_SIZE(), which isn't yet defined in liblockdep so is assumed to be an (undeclared) function - putting a function call inside a BUILD_BUG_ON() expression quietly turns it into some nonsense involving a variable-length array It did produce a compiler warning, but I didn't notice because liblockdep already produces too many warnings if -Wall is enabled (which I'll fix shortly). Even before that commit, which reduced lock_chain::depth from 8 bits to 6, MAX_LOCK_DEPTH was too large. Signed-off-by: Ben Hutchings Signed-off-by: Sasha Levin Cc: # for versions before 4.6, use a value of 255 Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Link: http://lkml.kernel.org/r/20170525130005.5947-3-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/uinclude/linux/lockdep.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/uinclude/linux/lockdep.h b/tools/lib/lockdep/uinclude/linux/lockdep.h index c808c7d02d21..d30214221920 100644 --- a/tools/lib/lockdep/uinclude/linux/lockdep.h +++ b/tools/lib/lockdep/uinclude/linux/lockdep.h @@ -8,7 +8,7 @@ #include #include -#define MAX_LOCK_DEPTH 2000UL +#define MAX_LOCK_DEPTH 63UL #define asmlinkage #define __visible -- cgit v1.2.3 From 108744c45fd8a51e763e976d9e5b2cc265d4a847 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 25 May 2017 12:58:34 +0000 Subject: tools/lib/lockdep: Define the ARRAY_SIZE() macro lockdep.c now uses ARRAY_SIZE(). Signed-off-by: Ben Hutchings Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Fixes: 75dd602a5198 ("lockdep: Fix lock_chain::base size") Link: http://lkml.kernel.org/r/20170525130005.5947-4-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/uinclude/linux/kernel.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/uinclude/linux/kernel.h b/tools/lib/lockdep/uinclude/linux/kernel.h index 276c7a8b2ed1..da87bd9ad2c1 100644 --- a/tools/lib/lockdep/uinclude/linux/kernel.h +++ b/tools/lib/lockdep/uinclude/linux/kernel.h @@ -7,6 +7,8 @@ #include #include +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) + #ifndef container_of #define container_of(ptr, type, member) ({ \ const typeof(((type *)0)->member) * __mptr = (ptr); \ -- cgit v1.2.3 From db8f7796c491a7b0a220a89a4abd9134f3906f43 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 25 May 2017 12:58:36 +0000 Subject: tools/lib/lockdep: Enable -Wall by default Regressions in liblockdep may be missed because it doesn't enable warnings. Adding -Wall immediately introduces a lot of warnings, but those will be fixed by the following commits. Signed-off-by: Ben Hutchings Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Link: http://lkml.kernel.org/r/20170525130005.5947-5-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/Makefile | 1 + 1 file changed, 1 insertion(+) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/Makefile b/tools/lib/lockdep/Makefile index 3bc0ef9f8923..98d8a5ae8334 100644 --- a/tools/lib/lockdep/Makefile +++ b/tools/lib/lockdep/Makefile @@ -79,6 +79,7 @@ INCLUDES = -I. -I./uinclude -I./include -I../../include $(CONFIG_INCLUDES) # Set compile option CFLAGS if not set elsewhere CFLAGS ?= -g -DCONFIG_LOCKDEP -DCONFIG_STACKTRACE -DCONFIG_PROVE_LOCKING -DBITS_PER_LONG=__WORDSIZE -DLIBLOCKDEP_VERSION='"$(LIBLOCKDEP_VERSION)"' -rdynamic -O0 -g CFLAGS += -fPIC +CFLAGS += -Wall override CFLAGS += $(CONFIG_FLAGS) $(INCLUDES) $(PLUGIN_DIR_SQ) -- cgit v1.2.3 From bb7ea2a9af4c98ed70adf7627a2ba5d1ff1725e0 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 25 May 2017 12:58:37 +0000 Subject: tools/lib/lockdep: Fix 'unused value' warnings liblockdep defines various macros that may expand to an expression with no effect, while the in-kernel definition does have an effect. This results in warnings from gcc when -Wunused-value is enabled, and is is enabled by -Wall. Fix this by introducing trivial functions, as function return values are generally allowed to be ignored. Signed-off-by: Ben Hutchings Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Link: http://lkml.kernel.org/r/20170525130005.5947-6-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/uinclude/linux/debug_locks.h | 2 +- tools/lib/lockdep/uinclude/linux/kernel.h | 12 +++++++++--- tools/lib/lockdep/uinclude/linux/lockdep.h | 6 +++++- 3 files changed, 15 insertions(+), 5 deletions(-) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/uinclude/linux/debug_locks.h b/tools/lib/lockdep/uinclude/linux/debug_locks.h index f38eb64df794..1d4fbec5c649 100644 --- a/tools/lib/lockdep/uinclude/linux/debug_locks.h +++ b/tools/lib/lockdep/uinclude/linux/debug_locks.h @@ -4,7 +4,7 @@ #include #include -#define DEBUG_LOCKS_WARN_ON(x) (x) +#define DEBUG_LOCKS_WARN_ON(x) WARN_ON(x) extern bool debug_locks; extern bool debug_locks_silent; diff --git a/tools/lib/lockdep/uinclude/linux/kernel.h b/tools/lib/lockdep/uinclude/linux/kernel.h index da87bd9ad2c1..021cff4f4e3d 100644 --- a/tools/lib/lockdep/uinclude/linux/kernel.h +++ b/tools/lib/lockdep/uinclude/linux/kernel.h @@ -22,10 +22,16 @@ _max1 > _max2 ? _max1 : _max2; }) #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) -#define WARN_ON(x) (x) -#define WARN_ON_ONCE(x) (x) + +static inline int lockdep_warn(int condition) +{ + return condition; +} +#define WARN_ON(x) lockdep_warn(x) +#define WARN_ON_ONCE(x) WARN_ON(x) +#define WARN(x, y...) WARN_ON(x) + #define likely(x) (x) -#define WARN(x, y...) (x) #define uninitialized_var(x) x #define __init #define noinline diff --git a/tools/lib/lockdep/uinclude/linux/lockdep.h b/tools/lib/lockdep/uinclude/linux/lockdep.h index d30214221920..d1079034a14d 100644 --- a/tools/lib/lockdep/uinclude/linux/lockdep.h +++ b/tools/lib/lockdep/uinclude/linux/lockdep.h @@ -29,7 +29,11 @@ extern struct task_struct *__curr(void); #define current (__curr()) -#define debug_locks_off() 1 +static inline int debug_locks_off(void) +{ + return 1; +} + #define task_pid_nr(tsk) ((tsk)->pid) #define KSYM_NAME_LEN 128 -- cgit v1.2.3 From b016d870cadae31d7c5eb2eef794d2e733f6595c Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 25 May 2017 12:58:38 +0000 Subject: tools/lib/lockdep: Fix 'set but not used' warnings liblockdep defines trivial macros for working with interrupt flags, as interrupts are never disabled in userland. This results in warnings from gcc when -Wunused-but-set-variable is enabled, and it is enabled by -Wall. Fix this by evaluating the flags parameter and casting it to void. Signed-off-by: Ben Hutchings Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Link: http://lkml.kernel.org/r/20170525130005.5947-7-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/uinclude/linux/irqflags.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/uinclude/linux/irqflags.h b/tools/lib/lockdep/uinclude/linux/irqflags.h index 6cc296f0fad0..df77669cfe1c 100644 --- a/tools/lib/lockdep/uinclude/linux/irqflags.h +++ b/tools/lib/lockdep/uinclude/linux/irqflags.h @@ -17,19 +17,19 @@ #define raw_local_irq_disable() do { } while (0) #define raw_local_irq_enable() do { } while (0) #define raw_local_irq_save(flags) ((flags) = 0) -#define raw_local_irq_restore(flags) do { } while (0) +#define raw_local_irq_restore(flags) ((void)(flags)) #define raw_local_save_flags(flags) ((flags) = 0) -#define raw_irqs_disabled_flags(flags) do { } while (0) +#define raw_irqs_disabled_flags(flags) ((void)(flags)) #define raw_irqs_disabled() 0 #define raw_safe_halt() #define local_irq_enable() do { } while (0) #define local_irq_disable() do { } while (0) #define local_irq_save(flags) ((flags) = 0) -#define local_irq_restore(flags) do { } while (0) +#define local_irq_restore(flags) ((void)(flags)) #define local_save_flags(flags) ((flags) = 0) #define irqs_disabled() (1) -#define irqs_disabled_flags(flags) (0) +#define irqs_disabled_flags(flags) ((void)(flags), 0) #define safe_halt() do { } while (0) #define trace_lock_release(x, y) -- cgit v1.2.3 From 1baa75406ecc2d77c9e6ecf45a707838a5bf7f29 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 25 May 2017 12:58:39 +0000 Subject: tools/lib/lockdep: Fix 'defined but not used' warning for init_utsname() We define init_utsname() as static but not inline, resulting in a warning for every source file that includes lockdep.h but doesn't call it. Since it is only used by lockdep.c, define it in there. Signed-off-by: Ben Hutchings Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Link: http://lkml.kernel.org/r/20170525130005.5947-8-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/lockdep.c | 10 ++++++++++ tools/lib/lockdep/uinclude/linux/lockdep.h | 10 ---------- 2 files changed, 10 insertions(+), 10 deletions(-) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/lockdep.c b/tools/lib/lockdep/lockdep.c index 443acb11f907..209f967dedaa 100644 --- a/tools/lib/lockdep/lockdep.c +++ b/tools/lib/lockdep/lockdep.c @@ -12,4 +12,14 @@ u32 prandom_u32(void) abort(); } +static struct new_utsname *init_utsname(void) +{ + static struct new_utsname n = (struct new_utsname) { + .release = "liblockdep", + .version = LIBLOCKDEP_VERSION, + }; + + return &n; +} + #include "../../../kernel/locking/lockdep.c" diff --git a/tools/lib/lockdep/uinclude/linux/lockdep.h b/tools/lib/lockdep/uinclude/linux/lockdep.h index d1079034a14d..c157242e0417 100644 --- a/tools/lib/lockdep/uinclude/linux/lockdep.h +++ b/tools/lib/lockdep/uinclude/linux/lockdep.h @@ -44,16 +44,6 @@ static inline int debug_locks_off(void) #define atomic_t unsigned long #define atomic_inc(x) ((*(x))++) -static struct new_utsname *init_utsname(void) -{ - static struct new_utsname n = (struct new_utsname) { - .release = "liblockdep", - .version = LIBLOCKDEP_VERSION, - }; - - return &n; -} - #define print_tainted() "" #define static_obj(x) 1 -- cgit v1.2.3 From a9b94d283caa55e9d292a29b431940482a433cb3 Mon Sep 17 00:00:00 2001 From: Vishal Thanki Date: Thu, 25 May 2017 12:58:41 +0000 Subject: tools/lib/lockdep: Remove -lpthread compiler option With -lpthread option, the test for ABBA_2threads was failing, and test passed if it was removed. Since -pthread compiler option is sufficient for linking to pthread libraries, this patch removes -lpthread. Signed-off-by: Vishal Thanki Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Cc: ben@decadent.org.uk Link: http://lkml.kernel.org/r/20170525130005.5947-9-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/run_tests.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/run_tests.sh b/tools/lib/lockdep/run_tests.sh index 1069d96248c1..3fd297bd5fcb 100755 --- a/tools/lib/lockdep/run_tests.sh +++ b/tools/lib/lockdep/run_tests.sh @@ -4,7 +4,7 @@ make &> /dev/null for i in `ls tests/*.c`; do testname=$(basename "$i" .c) - gcc -o tests/$testname -pthread -lpthread $i liblockdep.a -Iinclude -D__USE_LIBLOCKDEP &> /dev/null + gcc -o tests/$testname -pthread $i liblockdep.a -Iinclude -D__USE_LIBLOCKDEP &> /dev/null echo -ne "$testname... " if [ $(timeout 1 ./tests/$testname | wc -l) -gt 0 ]; then echo "PASSED!" @@ -18,7 +18,7 @@ done for i in `ls tests/*.c`; do testname=$(basename "$i" .c) - gcc -o tests/$testname -pthread -lpthread -Iinclude $i &> /dev/null + gcc -o tests/$testname -pthread -Iinclude $i &> /dev/null echo -ne "(PRELOAD) $testname... " if [ $(timeout 1 ./lockdep ./tests/$testname | wc -l) -gt 0 ]; then echo "PASSED!" -- cgit v1.2.3 From 20fb654aef1c929f7befb40678e2cb65a77ead7f Mon Sep 17 00:00:00 2001 From: Alexander Sverdlin Date: Thu, 25 May 2017 12:58:46 +0000 Subject: tools/lib/lockdep: Don't mix fd-based and stream IO Mixing fd-based and stream-base IO results in interleaved output like following: ===================================== liblockdep 4.7.6 ------------------------------------- conopal/372 is trying to release lock (0x3a45c) at: /lib/libpt.so.2.17-alpha2(_ZN11PTimedMutex6SignalEv+0x3c) [0xb613c688] but there are no more locks to release! other info that might help us debug this: no locks held by conopal/372. stack backtrace: ===================================== liblockdep 4.7.6 ---------------------------------/usr/lib/liblockdep.so.4.7.6(+0x1e3c)[0xb67c2e3c] /usr/lib/liblockdep.so.4.7.6(+0x5fe0)[0xb67c6fe0] /usr/lib/liblockdep.so.4.7.6(+0x6450)[0xb67c7450] /usr/lib/liblockdep.so.4.7.6(lock_release+0x5c)[0xb67c7c40] /usr/lib/liblockdep.so.4.7.6(pthread_mutex_unlock+0x38)[0xb67c91d4] /lib/libpt.so.2.17-alpha2(_ZN11PTimedMutex6SignalEv+0x3c)[0xb613c688] /lib/libpt.so.2.17-alpha2(_ZN10PContainer14AssignContentsERKS_+0xe4)[0xb6160730] /lib/libopal.so.3.17-alpha2(_ZN15OpalMediaFormat14AssignContentsERK10PContainer+0x90)[0xb6435edc] /lib/libopal.so.3.17-alpha2(_ZN15OpalMediaFormataSERK7PString+0x68)[0xb643b610] /lib/libopal.so.3.17-alpha2(_ZN15OpalMediaFormatC2EPKc+0x68)[0xb643b6cc] /lib/libopal.so.3.17-alpha2(_ZN11OpalWAVFile14AddMediaFormatERK15OpalMediaFormat+0x330)[0xb66b2224] /lib/libopal.so.3.17-alpha2(+0x2526f8)[0xb640c6f8] /lib/ld-linux-armhf.so.3(+0x102f0)[0xb6f852f0] /lib/ld-linux-armhf.so.3(+0x1044c)[0xb6f8544c] /lib/ld-linux-armhf.so.3(+0xac4)[0xb6f75ac4] /usr/lib/liblockdep.so.4.7.6(+0x1e3c)[0xb67c2e3c] /usr/lib/liblockdep.so.4.7.6(+0x5fe0)[0xb67c6fe0] /usr/lib/liblockdep.so.4.7.6(+0x6450)[0xb67c7450] /usr/lib/liblockdep.so.4.7.6(lock_release+0x5c)[0xb67c7c40] /usr/lib/liblockdep.so.4.7.6(pthread_mutex_unlock+0x38)[0xb67c91d4] /lib/libpt.so.2.17-alpha2(_ZN11PTimedMutex6SignalEv+0x3c)[0xb613c688] /lib/libopal.so.3.17-alpha2(_ZN15OpalMediaFormat14AssignContentsERK10PContainer+0x78)[0xb6435ec4] /lib/libopal.so.3.17-alpha2(_ZN15OpalMediaFormataSERK7PString+0x68)[0xb643b610] /lib/libopal.so.3.17-alpha2(_ZN15OpalMediaFormatC2EPKc+0x68)[0xb643b6cc] /lib/libopal.so.3.17-alpha2(_ZN11OpalWAVFile14AddMediaFormatERK15OpalMediaFormat+0x330)[0xb66b2224] /lib/libopal.so.3.17-alpha2(+0x2526f8)[0xb640c6f8] /lib/ld-linux-armhf.so.3(+0x102f0)[0xb6f852f0] /lib/ld-linux-armhf.so.3(+0x1044c)[0xb6f8544c] /lib/ld-linux-armhf.so.3(+0xac4)[0xb6f75ac4] Therefore change all bare printf(...) to dprintf(STDOUT_FILENO, ...) to sychronize with backtrace_symbols_fd(). [ BUG: bad unlock balance detected! ] Signed-off-by: Alexander Sverdlin Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Sasha Levin Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Cc: ben@decadent.org.uk Link: http://lkml.kernel.org/r/20170525130005.5947-12-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/preload.c | 3 ++- tools/lib/lockdep/uinclude/linux/kallsyms.h | 3 ++- tools/lib/lockdep/uinclude/linux/lockdep.h | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/preload.c b/tools/lib/lockdep/preload.c index 52844847569c..226aa26198a9 100644 --- a/tools/lib/lockdep/preload.c +++ b/tools/lib/lockdep/preload.c @@ -4,6 +4,7 @@ #include #include #include +#include #include "include/liblockdep/mutex.h" #include "../../include/linux/rbtree.h" @@ -149,7 +150,7 @@ static struct lock_lookup *alloc_lock(void) int idx = __locks_nr++; if (idx >= ARRAY_SIZE(__locks)) { - fprintf(stderr, + dprintf(STDERR_FILENO, "LOCKDEP error: insufficient LIBLOCKDEP_STATIC_ENTRIES\n"); exit(EX_UNAVAILABLE); } diff --git a/tools/lib/lockdep/uinclude/linux/kallsyms.h b/tools/lib/lockdep/uinclude/linux/kallsyms.h index b0f2dbdf1a15..582cc1e5f3a4 100644 --- a/tools/lib/lockdep/uinclude/linux/kallsyms.h +++ b/tools/lib/lockdep/uinclude/linux/kallsyms.h @@ -3,6 +3,7 @@ #include #include +#include #define KSYM_NAME_LEN 128 @@ -24,7 +25,7 @@ static inline void print_ip_sym(unsigned long ip) name = backtrace_symbols((void **)&ip, 1); - printf("%s\n", *name); + dprintf(STDOUT_FILENO, "%s\n", *name); free(name); } diff --git a/tools/lib/lockdep/uinclude/linux/lockdep.h b/tools/lib/lockdep/uinclude/linux/lockdep.h index c157242e0417..d988fba99454 100644 --- a/tools/lib/lockdep/uinclude/linux/lockdep.h +++ b/tools/lib/lockdep/uinclude/linux/lockdep.h @@ -7,6 +7,7 @@ #include #include #include +#include #define MAX_LOCK_DEPTH 63UL @@ -37,7 +38,7 @@ static inline int debug_locks_off(void) #define task_pid_nr(tsk) ((tsk)->pid) #define KSYM_NAME_LEN 128 -#define printk printf +#define printk(...) dprintf(STDOUT_FILENO, __VA_ARGS__) #define list_del_rcu list_del -- cgit v1.2.3 From 6c8e6483850e7a7e44fd584790969c308887c468 Mon Sep 17 00:00:00 2001 From: "Levin, Alexander (Sasha Levin)" Date: Thu, 25 May 2017 12:58:47 +0000 Subject: tools/lib/lockdep: Fix compilation for 4.11 - More rcu stubs - New dummy headers due to sched header split - jhash2 included in due to kernel lockdep inclusion and usage Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Cc: ben@decadent.org.uk Link: http://lkml.kernel.org/r/20170525130005.5947-13-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/uinclude/linux/bitops.h | 3 --- tools/lib/lockdep/uinclude/linux/compiler.h | 2 ++ tools/lib/lockdep/uinclude/linux/kernel.h | 2 ++ tools/lib/lockdep/uinclude/linux/rcu.h | 2 ++ 4 files changed, 6 insertions(+), 3 deletions(-) delete mode 100644 tools/lib/lockdep/uinclude/linux/bitops.h (limited to 'tools/lib') diff --git a/tools/lib/lockdep/uinclude/linux/bitops.h b/tools/lib/lockdep/uinclude/linux/bitops.h deleted file mode 100644 index fab00ff936d1..000000000000 --- a/tools/lib/lockdep/uinclude/linux/bitops.h +++ /dev/null @@ -1,3 +0,0 @@ - -/* empty file */ - diff --git a/tools/lib/lockdep/uinclude/linux/compiler.h b/tools/lib/lockdep/uinclude/linux/compiler.h index fd3e56a83fc2..fba5e022cee7 100644 --- a/tools/lib/lockdep/uinclude/linux/compiler.h +++ b/tools/lib/lockdep/uinclude/linux/compiler.h @@ -7,4 +7,6 @@ #define WRITE_ONCE(x, val) x=(val) #define RCU_INIT_POINTER(p, v) p=(v) +#define __packed __attribute__((packed)) + #endif diff --git a/tools/lib/lockdep/uinclude/linux/kernel.h b/tools/lib/lockdep/uinclude/linux/kernel.h index 021cff4f4e3d..faa98cc7971a 100644 --- a/tools/lib/lockdep/uinclude/linux/kernel.h +++ b/tools/lib/lockdep/uinclude/linux/kernel.h @@ -52,4 +52,6 @@ static inline int lockdep_warn(int condition) #define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; }) #endif +#define pr_err(format, ...) fprintf (stderr, format, ## __VA_ARGS__) + #endif diff --git a/tools/lib/lockdep/uinclude/linux/rcu.h b/tools/lib/lockdep/uinclude/linux/rcu.h index 042ee8e463c9..6f0332324a6d 100644 --- a/tools/lib/lockdep/uinclude/linux/rcu.h +++ b/tools/lib/lockdep/uinclude/linux/rcu.h @@ -18,4 +18,6 @@ static inline bool rcu_is_watching(void) return false; } +#define rcu_assign_pointer(p, v) ((p) = (v)) + #endif -- cgit v1.2.3 From ea59f30d6a30c4c0ef54d1e19ac70c35b6ef91b6 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 25 May 2017 12:58:48 +0000 Subject: tools/lib/lockdep: Fix object file paths used in an out-of-tree build Signed-off-by: Ben Hutchings Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Link: http://lkml.kernel.org/r/20170525130005.5947-14-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/Makefile b/tools/lib/lockdep/Makefile index 98d8a5ae8334..e5e64d6ad0a7 100644 --- a/tools/lib/lockdep/Makefile +++ b/tools/lib/lockdep/Makefile @@ -101,7 +101,7 @@ include $(srctree)/tools/build/Makefile.include do_compile_shared_library = \ ($(print_shared_lib_compile) \ - $(CC) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='"$@"';$(shell ln -sf $@ liblockdep.so)) + $(CC) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='"$(@F)"';$(shell ln -sf $(@F) $(@D)/liblockdep.so)) do_build_static_lib = \ ($(print_static_lib_build) \ @@ -119,10 +119,10 @@ all_cmd: $(CMD_TARGETS) $(LIB_IN): force $(Q)$(MAKE) $(build)=liblockdep -liblockdep.so.$(LIBLOCKDEP_VERSION): $(LIB_IN) +$(OUTPUT)liblockdep.so.$(LIBLOCKDEP_VERSION): $(LIB_IN) $(Q)$(do_compile_shared_library) -liblockdep.a: $(LIB_IN) +$(OUTPUT)liblockdep.a: $(LIB_IN) $(Q)$(do_build_static_lib) tags: force @@ -150,7 +150,7 @@ install_lib: all_cmd install: install_lib clean: - $(RM) *.o *~ $(TARGETS) *.a *liblockdep*.so* $(VERSION_FILES) .*.d .*.cmd + $(RM) $(OUTPUT)*.o *~ $(TARGETS) $(OUTPUT)*.a $(OUTPUT)*liblockdep*.so* $(VERSION_FILES) $(OUTPUT).*.d $(OUTPUT).*.cmd $(RM) tags TAGS PHONY += force -- cgit v1.2.3 From e3addcc087d1ca398afbdefa3e671d580b026a71 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 25 May 2017 12:58:49 +0000 Subject: tools/lib/lockdep: Remove double-quotes from soname Signed-off-by: Ben Hutchings Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Link: http://lkml.kernel.org/r/20170525130005.5947-15-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/Makefile b/tools/lib/lockdep/Makefile index e5e64d6ad0a7..ce21b9429314 100644 --- a/tools/lib/lockdep/Makefile +++ b/tools/lib/lockdep/Makefile @@ -101,7 +101,7 @@ include $(srctree)/tools/build/Makefile.include do_compile_shared_library = \ ($(print_shared_lib_compile) \ - $(CC) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='"$(@F)"';$(shell ln -sf $(@F) $(@D)/liblockdep.so)) + $(CC) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='$(@F)';$(shell ln -sf $(@F) $(@D)/liblockdep.so)) do_build_static_lib = \ ($(print_static_lib_build) \ -- cgit v1.2.3 From d8633a32f2a466e8f03f6f06dab237ff4a1e95f2 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 25 May 2017 12:58:51 +0000 Subject: tools/lib/lockdep: Use LDFLAGS Signed-off-by: Ben Hutchings Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Link: http://lkml.kernel.org/r/20170525130005.5947-16-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/Makefile b/tools/lib/lockdep/Makefile index ce21b9429314..ed9ace59d112 100644 --- a/tools/lib/lockdep/Makefile +++ b/tools/lib/lockdep/Makefile @@ -101,7 +101,7 @@ include $(srctree)/tools/build/Makefile.include do_compile_shared_library = \ ($(print_shared_lib_compile) \ - $(CC) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='$(@F)';$(shell ln -sf $(@F) $(@D)/liblockdep.so)) + $(CC) $(LDFLAGS) --shared $^ -o $@ -lpthread -ldl -Wl,-soname='$(@F)';$(shell ln -sf $(@F) $(@D)/liblockdep.so)) do_build_static_lib = \ ($(print_static_lib_build) \ -- cgit v1.2.3 From f9155dd8d9281adac4d8c95ca66f7db22cd292e1 Mon Sep 17 00:00:00 2001 From: "Levin, Alexander (Sasha Levin)" Date: Thu, 25 May 2017 12:58:53 +0000 Subject: tools/lib/lockdep: Include err.h This provides PTR_ERR() now used by lockdep. Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Cc: ben@decadent.org.uk Link: http://lkml.kernel.org/r/20170525130005.5947-18-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/uinclude/linux/kernel.h | 1 + 1 file changed, 1 insertion(+) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/uinclude/linux/kernel.h b/tools/lib/lockdep/uinclude/linux/kernel.h index faa98cc7971a..75ff4b1bbcac 100644 --- a/tools/lib/lockdep/uinclude/linux/kernel.h +++ b/tools/lib/lockdep/uinclude/linux/kernel.h @@ -6,6 +6,7 @@ #include #include #include +#include #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) -- cgit v1.2.3 From 3156cbaeda991f6b330dd8260d863bfad71b358e Mon Sep 17 00:00:00 2001 From: "Levin, Alexander (Sasha Levin)" Date: Thu, 25 May 2017 12:58:55 +0000 Subject: tools/lib/lockdep: Add empty __is_[module,kernel]_percpu_address This would fix the build error caused by: 383776fa7 ("locking/lockdep: Handle statically initialized PER_CPU locks properly") Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Cc: ben@decadent.org.uk Link: http://lkml.kernel.org/r/20170525130005.5947-19-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/uinclude/linux/lockdep.h | 5 +++++ tools/lib/lockdep/uinclude/linux/module.h | 5 +++++ 2 files changed, 10 insertions(+) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/uinclude/linux/lockdep.h b/tools/lib/lockdep/uinclude/linux/lockdep.h index d988fba99454..f026d4545e97 100644 --- a/tools/lib/lockdep/uinclude/linux/lockdep.h +++ b/tools/lib/lockdep/uinclude/linux/lockdep.h @@ -51,4 +51,9 @@ static inline int debug_locks_off(void) #define debug_show_all_locks() extern void debug_check_no_locks_held(void); +static __used bool __is_kernel_percpu_address(unsigned long addr, void *can_addr) +{ + return false; +} + #endif diff --git a/tools/lib/lockdep/uinclude/linux/module.h b/tools/lib/lockdep/uinclude/linux/module.h index 09c7a7be8ccc..07055db296f3 100644 --- a/tools/lib/lockdep/uinclude/linux/module.h +++ b/tools/lib/lockdep/uinclude/linux/module.h @@ -3,4 +3,9 @@ #define module_param(name, type, perm) +static inline bool __is_module_percpu_address(unsigned long addr, unsigned long *can_addr) +{ + return false; +} + #endif -- cgit v1.2.3 From 3f5a3934f4165f7f59bf8383011ed559b8acce7e Mon Sep 17 00:00:00 2001 From: "Levin, Alexander (Sasha Levin)" Date: Thu, 25 May 2017 12:58:57 +0000 Subject: tools/lib/lockdep: Add dummy current_gfp_context() Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Cc: ben@decadent.org.uk Link: http://lkml.kernel.org/r/20170525130005.5947-21-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/uinclude/linux/kernel.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/uinclude/linux/kernel.h b/tools/lib/lockdep/uinclude/linux/kernel.h index 75ff4b1bbcac..4a31ebe1a377 100644 --- a/tools/lib/lockdep/uinclude/linux/kernel.h +++ b/tools/lib/lockdep/uinclude/linux/kernel.h @@ -54,5 +54,8 @@ static inline int lockdep_warn(int condition) #endif #define pr_err(format, ...) fprintf (stderr, format, ## __VA_ARGS__) +#define pr_warn pr_err + +#define current_gfp_context(k) 0 #endif -- cgit v1.2.3 From 4ea4b3c25752499a67c4a35cafd2d5535017faad Mon Sep 17 00:00:00 2001 From: "Levin, Alexander (Sasha Levin)" Date: Thu, 25 May 2017 12:58:58 +0000 Subject: tools/lib/lockdep: Hide liblockdep output from test results This would prevent the liblockdep error messages from getting mixed in with the test result output. Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: a.p.zijlstra@chello.nl Cc: ben@decadent.org.uk Link: http://lkml.kernel.org/r/20170525130005.5947-22-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/run_tests.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tools/lib') diff --git a/tools/lib/lockdep/run_tests.sh b/tools/lib/lockdep/run_tests.sh index 3fd297bd5fcb..f9b94098fc98 100755 --- a/tools/lib/lockdep/run_tests.sh +++ b/tools/lib/lockdep/run_tests.sh @@ -6,7 +6,7 @@ for i in `ls tests/*.c`; do testname=$(basename "$i" .c) gcc -o tests/$testname -pthread $i liblockdep.a -Iinclude -D__USE_LIBLOCKDEP &> /dev/null echo -ne "$testname... " - if [ $(timeout 1 ./tests/$testname | wc -l) -gt 0 ]; then + if [ $(timeout 1 ./tests/$testname 2>&1 | wc -l) -gt 0 ]; then echo "PASSED!" else echo "FAILED!" @@ -20,7 +20,7 @@ for i in `ls tests/*.c`; do testname=$(basename "$i" .c) gcc -o tests/$testname -pthread -Iinclude $i &> /dev/null echo -ne "(PRELOAD) $testname... " - if [ $(timeout 1 ./lockdep ./tests/$testname | wc -l) -gt 0 ]; then + if [ $(timeout 1 ./lockdep ./tests/$testname 2>&1 | wc -l) -gt 0 ]; then echo "PASSED!" else echo "FAILED!" -- cgit v1.2.3 From e58e871becec2d3b04ed91c0c16fe8deac9c9dfa Mon Sep 17 00:00:00 2001 From: "Levin, Alexander (Sasha Levin)" Date: Wed, 31 May 2017 00:38:09 +0000 Subject: tools/lib/lockdep: Remove private kernel headers Move to using tools/include/ instead. Signed-off-by: Sasha Levin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@redhat.com Link: http://lkml.kernel.org/r/20170531003747.10557-2-alexander.levin@verizon.com Signed-off-by: Ingo Molnar --- tools/lib/lockdep/lockdep.c | 2 + tools/lib/lockdep/preload.c | 2 - tools/lib/lockdep/rbtree.c | 2 +- tools/lib/lockdep/uinclude/asm/hash.h | 6 --- tools/lib/lockdep/uinclude/asm/hweight.h | 3 -- tools/lib/lockdep/uinclude/asm/sections.h | 3 -- tools/lib/lockdep/uinclude/linux/compiler.h | 12 ----- tools/lib/lockdep/uinclude/linux/debug_locks.h | 12 ----- tools/lib/lockdep/uinclude/linux/delay.h | 3 -- tools/lib/lockdep/uinclude/linux/ftrace.h | 3 -- tools/lib/lockdep/uinclude/linux/gfp.h | 3 -- tools/lib/lockdep/uinclude/linux/hardirq.h | 11 ---- tools/lib/lockdep/uinclude/linux/hash.h | 1 - tools/lib/lockdep/uinclude/linux/interrupt.h | 3 -- tools/lib/lockdep/uinclude/linux/irqflags.h | 38 -------------- tools/lib/lockdep/uinclude/linux/kallsyms.h | 33 ------------ tools/lib/lockdep/uinclude/linux/kern_levels.h | 25 --------- tools/lib/lockdep/uinclude/linux/kernel.h | 61 ---------------------- tools/lib/lockdep/uinclude/linux/kmemcheck.h | 8 --- tools/lib/lockdep/uinclude/linux/linkage.h | 3 -- tools/lib/lockdep/uinclude/linux/list.h | 1 - tools/lib/lockdep/uinclude/linux/lockdep.h | 59 --------------------- tools/lib/lockdep/uinclude/linux/module.h | 11 ---- tools/lib/lockdep/uinclude/linux/mutex.h | 3 -- tools/lib/lockdep/uinclude/linux/poison.h | 1 - tools/lib/lockdep/uinclude/linux/prefetch.h | 6 --- tools/lib/lockdep/uinclude/linux/proc_fs.h | 3 -- .../lib/lockdep/uinclude/linux/rbtree_augmented.h | 2 - tools/lib/lockdep/uinclude/linux/rcu.h | 23 -------- tools/lib/lockdep/uinclude/linux/seq_file.h | 3 -- tools/lib/lockdep/uinclude/linux/spinlock.h | 25 --------- tools/lib/lockdep/uinclude/linux/stacktrace.h | 32 ------------ tools/lib/lockdep/uinclude/linux/stringify.h | 7 --- tools/lib/lockdep/uinclude/trace/events/lock.h | 3 -- 34 files changed, 3 insertions(+), 410 deletions(-) delete mode 100644 tools/lib/lockdep/uinclude/asm/hash.h delete mode 100644 tools/lib/lockdep/uinclude/asm/hweight.h delete mode 100644 tools/lib/lockdep/uinclude/asm/sections.h delete mode 100644 tools/lib/lockdep/uinclude/linux/compiler.h delete mode 100644 tools/lib/lockdep/uinclude/linux/debug_locks.h delete mode 100644 tools/lib/lockdep/uinclude/linux/delay.h delete mode 100644 tools/lib/lockdep/uinclude/linux/ftrace.h delete mode 100644 tools/lib/lockdep/uinclude/linux/gfp.h delete mode 100644 tools/lib/lockdep/uinclude/linux/hardirq.h delete mode 100644 tools/lib/lockdep/uinclude/linux/hash.h delete mode 100644 tools/lib/lockdep/uinclude/linux/interrupt.h delete mode 100644 tools/lib/lockdep/uinclude/linux/irqflags.h delete mode 100644 tools/lib/lockdep/uinclude/linux/kallsyms.h delete mode 100644 tools/lib/lockdep/uinclude/linux/kern_levels.h delete mode 100644 tools/lib/lockdep/uinclude/linux/kernel.h delete mode 100644 tools/lib/lockdep/uinclude/linux/kmemcheck.h delete mode 100644 tools/lib/lockdep/uinclude/linux/linkage.h delete mode 100644 tools/lib/lockdep/uinclude/linux/list.h delete mode 100644 tools/lib/lockdep/uinclude/linux/lockdep.h delete mode 100644 tools/lib/lockdep/uinclude/linux/module.h delete mode 100644 tools/lib/lockdep/uinclude/linux/mutex.h delete mode 100644 tools/lib/lockdep/uinclude/linux/poison.h delete mode 100644 tools/lib/lockdep/uinclude/linux/prefetch.h delete mode 100644 tools/lib/lockdep/uinclude/linux/proc_fs.h delete mode 100644 tools/lib/lockdep/uinclude/linux/rbtree_augmented.h delete mode 100644 tools/lib/lockdep/uinclude/linux/rcu.h delete mode 100644 tools/lib/lockdep/uinclude/linux/seq_file.h delete mode 100644 tools/lib/lockdep/uinclude/linux/spinlock.h delete mode 100644 tools/lib/lockdep/uinclude/linux/stacktrace.h delete mode 100644 tools/lib/lockdep/uinclude/linux/stringify.h delete mode 100644 tools/lib/lockdep/uinclude/trace/events/lock.h (limited to 'tools/lib') diff --git a/tools/lib/lockdep/lockdep.c b/tools/lib/lockdep/lockdep.c index 209f967dedaa..ced6d7443cea 100644 --- a/tools/lib/lockdep/lockdep.c +++ b/tools/lib/lockdep/lockdep.c @@ -5,6 +5,8 @@ #define hlist_for_each_entry_rcu hlist_for_each_entry #define hlist_add_head_rcu hlist_add_head #define hlist_del_rcu hlist_del +#define list_for_each_entry_rcu list_for_each_entry +#define list_add_tail_rcu list_add_tail u32 prandom_u32(void) { diff --git a/tools/lib/lockdep/preload.c b/tools/lib/lockdep/preload.c index 226aa26198a9..6a2d3c5d4e92 100644 --- a/tools/lib/lockdep/preload.c +++ b/tools/lib/lockdep/preload.c @@ -123,8 +123,6 @@ static struct rb_node **__get_lock_node(void *lock, struct rb_node **parent) #define LIBLOCKDEP_STATIC_ENTRIES 1024 #endif -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) - static struct lock_lookup __locks[LIBLOCKDEP_STATIC_ENTRIES]; static int __locks_nr; diff --git a/tools/lib/lockdep/rbtree.c b/tools/lib/lockdep/rbtree.c index f7f43033c8b7..297c304571f8 100644 --- a/tools/lib/lockdep/rbtree.c +++ b/tools/lib/lockdep/rbtree.c @@ -1 +1 @@ -#include "../../../lib/rbtree.c" +#include "../../lib/rbtree.c" diff --git a/tools/lib/lockdep/uinclude/asm/hash.h b/tools/lib/lockdep/uinclude/asm/hash.h deleted file mode 100644 index d82b170bb216..000000000000 --- a/tools/lib/lockdep/uinclude/asm/hash.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __ASM_GENERIC_HASH_H -#define __ASM_GENERIC_HASH_H - -/* Stub */ - -#endif /* __ASM_GENERIC_HASH_H */ diff --git a/tools/lib/lockdep/uinclude/asm/hweight.h b/tools/lib/lockdep/uinclude/asm/hweight.h deleted file mode 100644 index fab00ff936d1..000000000000 --- a/tools/lib/lockdep/uinclude/asm/hweight.h +++ /dev/null @@ -1,3 +0,0 @@ - -/* empty file */ - diff --git a/tools/lib/lockdep/uinclude/asm/sections.h b/tools/lib/lockdep/uinclude/asm/sections.h deleted file mode 100644 index fab00ff936d1..000000000000 --- a/tools/lib/lockdep/uinclude/asm/sections.h +++ /dev/null @@ -1,3 +0,0 @@ - -/* empty file */ - diff --git a/tools/lib/lockdep/uinclude/linux/compiler.h b/tools/lib/lockdep/uinclude/linux/compiler.h deleted file mode 100644 index fba5e022cee7..000000000000 --- a/tools/lib/lockdep/uinclude/linux/compiler.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef _LIBLOCKDEP_LINUX_COMPILER_H_ -#define _LIBLOCKDEP_LINUX_COMPILER_H_ - -#define __used __attribute__((__unused__)) -#define unlikely -#define READ_ONCE(x) (x) -#define WRITE_ONCE(x, val) x=(val) -#define RCU_INIT_POINTER(p, v) p=(v) - -#define __packed __attribute__((packed)) - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/debug_locks.h b/tools/lib/lockdep/uinclude/linux/debug_locks.h deleted file mode 100644 index 1d4fbec5c649..000000000000 --- a/tools/lib/lockdep/uinclude/linux/debug_locks.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef _LIBLOCKDEP_DEBUG_LOCKS_H_ -#define _LIBLOCKDEP_DEBUG_LOCKS_H_ - -#include -#include - -#define DEBUG_LOCKS_WARN_ON(x) WARN_ON(x) - -extern bool debug_locks; -extern bool debug_locks_silent; - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/delay.h b/tools/lib/lockdep/uinclude/linux/delay.h deleted file mode 100644 index fab00ff936d1..000000000000 --- a/tools/lib/lockdep/uinclude/linux/delay.h +++ /dev/null @@ -1,3 +0,0 @@ - -/* empty file */ - diff --git a/tools/lib/lockdep/uinclude/linux/ftrace.h b/tools/lib/lockdep/uinclude/linux/ftrace.h deleted file mode 100644 index fab00ff936d1..000000000000 --- a/tools/lib/lockdep/uinclude/linux/ftrace.h +++ /dev/null @@ -1,3 +0,0 @@ - -/* empty file */ - diff --git a/tools/lib/lockdep/uinclude/linux/gfp.h b/tools/lib/lockdep/uinclude/linux/gfp.h deleted file mode 100644 index fab00ff936d1..000000000000 --- a/tools/lib/lockdep/uinclude/linux/gfp.h +++ /dev/null @@ -1,3 +0,0 @@ - -/* empty file */ - diff --git a/tools/lib/lockdep/uinclude/linux/hardirq.h b/tools/lib/lockdep/uinclude/linux/hardirq.h deleted file mode 100644 index c8f3f8f58729..000000000000 --- a/tools/lib/lockdep/uinclude/linux/hardirq.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _LIBLOCKDEP_LINUX_HARDIRQ_H_ -#define _LIBLOCKDEP_LINUX_HARDIRQ_H_ - -#define SOFTIRQ_BITS 0UL -#define HARDIRQ_BITS 0UL -#define SOFTIRQ_SHIFT 0UL -#define HARDIRQ_SHIFT 0UL -#define hardirq_count() 0UL -#define softirq_count() 0UL - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/hash.h b/tools/lib/lockdep/uinclude/linux/hash.h deleted file mode 100644 index 0f8479858dc0..000000000000 --- a/tools/lib/lockdep/uinclude/linux/hash.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../include/linux/hash.h" diff --git a/tools/lib/lockdep/uinclude/linux/interrupt.h b/tools/lib/lockdep/uinclude/linux/interrupt.h deleted file mode 100644 index fab00ff936d1..000000000000 --- a/tools/lib/lockdep/uinclude/linux/interrupt.h +++ /dev/null @@ -1,3 +0,0 @@ - -/* empty file */ - diff --git a/tools/lib/lockdep/uinclude/linux/irqflags.h b/tools/lib/lockdep/uinclude/linux/irqflags.h deleted file mode 100644 index df77669cfe1c..000000000000 --- a/tools/lib/lockdep/uinclude/linux/irqflags.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef _LIBLOCKDEP_LINUX_TRACE_IRQFLAGS_H_ -#define _LIBLOCKDEP_LINUX_TRACE_IRQFLAGS_H_ - -# define trace_hardirq_context(p) 0 -# define trace_softirq_context(p) 0 -# define trace_hardirqs_enabled(p) 0 -# define trace_softirqs_enabled(p) 0 -# define trace_hardirq_enter() do { } while (0) -# define trace_hardirq_exit() do { } while (0) -# define lockdep_softirq_enter() do { } while (0) -# define lockdep_softirq_exit() do { } while (0) -# define INIT_TRACE_IRQFLAGS - -# define stop_critical_timings() do { } while (0) -# define start_critical_timings() do { } while (0) - -#define raw_local_irq_disable() do { } while (0) -#define raw_local_irq_enable() do { } while (0) -#define raw_local_irq_save(flags) ((flags) = 0) -#define raw_local_irq_restore(flags) ((void)(flags)) -#define raw_local_save_flags(flags) ((flags) = 0) -#define raw_irqs_disabled_flags(flags) ((void)(flags)) -#define raw_irqs_disabled() 0 -#define raw_safe_halt() - -#define local_irq_enable() do { } while (0) -#define local_irq_disable() do { } while (0) -#define local_irq_save(flags) ((flags) = 0) -#define local_irq_restore(flags) ((void)(flags)) -#define local_save_flags(flags) ((flags) = 0) -#define irqs_disabled() (1) -#define irqs_disabled_flags(flags) ((void)(flags), 0) -#define safe_halt() do { } while (0) - -#define trace_lock_release(x, y) -#define trace_lock_acquire(a, b, c, d, e, f, g) - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/kallsyms.h b/tools/lib/lockdep/uinclude/linux/kallsyms.h deleted file mode 100644 index 582cc1e5f3a4..000000000000 --- a/tools/lib/lockdep/uinclude/linux/kallsyms.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef _LIBLOCKDEP_LINUX_KALLSYMS_H_ -#define _LIBLOCKDEP_LINUX_KALLSYMS_H_ - -#include -#include -#include - -#define KSYM_NAME_LEN 128 - -struct module; - -static inline const char *kallsyms_lookup(unsigned long addr, - unsigned long *symbolsize, - unsigned long *offset, - char **modname, char *namebuf) -{ - return NULL; -} - -#include -#include -static inline void print_ip_sym(unsigned long ip) -{ - char **name; - - name = backtrace_symbols((void **)&ip, 1); - - dprintf(STDOUT_FILENO, "%s\n", *name); - - free(name); -} - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/kern_levels.h b/tools/lib/lockdep/uinclude/linux/kern_levels.h deleted file mode 100644 index 3b9bade28698..000000000000 --- a/tools/lib/lockdep/uinclude/linux/kern_levels.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __KERN_LEVELS_H__ -#define __KERN_LEVELS_H__ - -#define KERN_SOH "" /* ASCII Start Of Header */ -#define KERN_SOH_ASCII '' - -#define KERN_EMERG KERN_SOH "" /* system is unusable */ -#define KERN_ALERT KERN_SOH "" /* action must be taken immediately */ -#define KERN_CRIT KERN_SOH "" /* critical conditions */ -#define KERN_ERR KERN_SOH "" /* error conditions */ -#define KERN_WARNING KERN_SOH "" /* warning conditions */ -#define KERN_NOTICE KERN_SOH "" /* normal but significant condition */ -#define KERN_INFO KERN_SOH "" /* informational */ -#define KERN_DEBUG KERN_SOH "" /* debug-level messages */ - -#define KERN_DEFAULT KERN_SOH "" /* the default kernel loglevel */ - -/* - * Annotation for a "continued" line of log printout (only done after a - * line that had no enclosing \n). Only to be used by core/arch code - * during early bootup (a continued line is not SMP-safe otherwise). - */ -#define KERN_CONT "" - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/kernel.h b/tools/lib/lockdep/uinclude/linux/kernel.h deleted file mode 100644 index 4a31ebe1a377..000000000000 --- a/tools/lib/lockdep/uinclude/linux/kernel.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef _LIBLOCKDEP_LINUX_KERNEL_H_ -#define _LIBLOCKDEP_LINUX_KERNEL_H_ - -#include -#include -#include -#include -#include -#include - -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) - -#ifndef container_of -#define container_of(ptr, type, member) ({ \ - const typeof(((type *)0)->member) * __mptr = (ptr); \ - (type *)((char *)__mptr - offsetof(type, member)); }) -#endif - -#define max(x, y) ({ \ - typeof(x) _max1 = (x); \ - typeof(y) _max2 = (y); \ - (void) (&_max1 == &_max2); \ - _max1 > _max2 ? _max1 : _max2; }) - -#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) - -static inline int lockdep_warn(int condition) -{ - return condition; -} -#define WARN_ON(x) lockdep_warn(x) -#define WARN_ON_ONCE(x) WARN_ON(x) -#define WARN(x, y...) WARN_ON(x) - -#define likely(x) (x) -#define uninitialized_var(x) x -#define __init -#define noinline -#define list_add_tail_rcu list_add_tail -#define list_for_each_entry_rcu list_for_each_entry -#define barrier() -#define synchronize_sched() - -#ifndef CALLER_ADDR0 -#define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0)) -#endif - -#ifndef _RET_IP_ -#define _RET_IP_ CALLER_ADDR0 -#endif - -#ifndef _THIS_IP_ -#define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; }) -#endif - -#define pr_err(format, ...) fprintf (stderr, format, ## __VA_ARGS__) -#define pr_warn pr_err - -#define current_gfp_context(k) 0 - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/kmemcheck.h b/tools/lib/lockdep/uinclude/linux/kmemcheck.h deleted file mode 100644 index 94d598bc6abe..000000000000 --- a/tools/lib/lockdep/uinclude/linux/kmemcheck.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _LIBLOCKDEP_LINUX_KMEMCHECK_H_ -#define _LIBLOCKDEP_LINUX_KMEMCHECK_H_ - -static inline void kmemcheck_mark_initialized(void *address, unsigned int n) -{ -} - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/linkage.h b/tools/lib/lockdep/uinclude/linux/linkage.h deleted file mode 100644 index fab00ff936d1..000000000000 --- a/tools/lib/lockdep/uinclude/linux/linkage.h +++ /dev/null @@ -1,3 +0,0 @@ - -/* empty file */ - diff --git a/tools/lib/lockdep/uinclude/linux/list.h b/tools/lib/lockdep/uinclude/linux/list.h deleted file mode 100644 index 6e9ef31ed82e..000000000000 --- a/tools/lib/lockdep/uinclude/linux/list.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../include/linux/list.h" diff --git a/tools/lib/lockdep/uinclude/linux/lockdep.h b/tools/lib/lockdep/uinclude/linux/lockdep.h deleted file mode 100644 index f026d4545e97..000000000000 --- a/tools/lib/lockdep/uinclude/linux/lockdep.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef _LIBLOCKDEP_LOCKDEP_H_ -#define _LIBLOCKDEP_LOCKDEP_H_ - -#include -#include -#include -#include -#include -#include -#include - -#define MAX_LOCK_DEPTH 63UL - -#define asmlinkage -#define __visible - -#include "../../../include/linux/lockdep.h" - -struct task_struct { - u64 curr_chain_key; - int lockdep_depth; - unsigned int lockdep_recursion; - struct held_lock held_locks[MAX_LOCK_DEPTH]; - gfp_t lockdep_reclaim_gfp; - int pid; - char comm[17]; -}; - -extern struct task_struct *__curr(void); - -#define current (__curr()) - -static inline int debug_locks_off(void) -{ - return 1; -} - -#define task_pid_nr(tsk) ((tsk)->pid) - -#define KSYM_NAME_LEN 128 -#define printk(...) dprintf(STDOUT_FILENO, __VA_ARGS__) - -#define list_del_rcu list_del - -#define atomic_t unsigned long -#define atomic_inc(x) ((*(x))++) - -#define print_tainted() "" -#define static_obj(x) 1 - -#define debug_show_all_locks() -extern void debug_check_no_locks_held(void); - -static __used bool __is_kernel_percpu_address(unsigned long addr, void *can_addr) -{ - return false; -} - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/module.h b/tools/lib/lockdep/uinclude/linux/module.h deleted file mode 100644 index 07055db296f3..000000000000 --- a/tools/lib/lockdep/uinclude/linux/module.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _LIBLOCKDEP_LINUX_MODULE_H_ -#define _LIBLOCKDEP_LINUX_MODULE_H_ - -#define module_param(name, type, perm) - -static inline bool __is_module_percpu_address(unsigned long addr, unsigned long *can_addr) -{ - return false; -} - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/mutex.h b/tools/lib/lockdep/uinclude/linux/mutex.h deleted file mode 100644 index fab00ff936d1..000000000000 --- a/tools/lib/lockdep/uinclude/linux/mutex.h +++ /dev/null @@ -1,3 +0,0 @@ - -/* empty file */ - diff --git a/tools/lib/lockdep/uinclude/linux/poison.h b/tools/lib/lockdep/uinclude/linux/poison.h deleted file mode 100644 index 0c27bdf14233..000000000000 --- a/tools/lib/lockdep/uinclude/linux/poison.h +++ /dev/null @@ -1 +0,0 @@ -#include "../../../include/linux/poison.h" diff --git a/tools/lib/lockdep/uinclude/linux/prefetch.h b/tools/lib/lockdep/uinclude/linux/prefetch.h deleted file mode 100644 index d73fe6f850ac..000000000000 --- a/tools/lib/lockdep/uinclude/linux/prefetch.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _LIBLOCKDEP_LINUX_PREFETCH_H_ -#define _LIBLOCKDEP_LINUX_PREFETCH_H - -static inline void prefetch(void *a __attribute__((unused))) { } - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/proc_fs.h b/tools/lib/lockdep/uinclude/linux/proc_fs.h deleted file mode 100644 index fab00ff936d1..000000000000 --- a/tools/lib/lockdep/uinclude/linux/proc_fs.h +++ /dev/null @@ -1,3 +0,0 @@ - -/* empty file */ - diff --git a/tools/lib/lockdep/uinclude/linux/rbtree_augmented.h b/tools/lib/lockdep/uinclude/linux/rbtree_augmented.h deleted file mode 100644 index c3759477379c..000000000000 --- a/tools/lib/lockdep/uinclude/linux/rbtree_augmented.h +++ /dev/null @@ -1,2 +0,0 @@ -#define __always_inline -#include "../../../include/linux/rbtree_augmented.h" diff --git a/tools/lib/lockdep/uinclude/linux/rcu.h b/tools/lib/lockdep/uinclude/linux/rcu.h deleted file mode 100644 index 6f0332324a6d..000000000000 --- a/tools/lib/lockdep/uinclude/linux/rcu.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _LIBLOCKDEP_RCU_H_ -#define _LIBLOCKDEP_RCU_H_ - -int rcu_scheduler_active; - -static inline int rcu_lockdep_current_cpu_online(void) -{ - return 1; -} - -static inline int rcu_is_cpu_idle(void) -{ - return 1; -} - -static inline bool rcu_is_watching(void) -{ - return false; -} - -#define rcu_assign_pointer(p, v) ((p) = (v)) - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/seq_file.h b/tools/lib/lockdep/uinclude/linux/seq_file.h deleted file mode 100644 index fab00ff936d1..000000000000 --- a/tools/lib/lockdep/uinclude/linux/seq_file.h +++ /dev/null @@ -1,3 +0,0 @@ - -/* empty file */ - diff --git a/tools/lib/lockdep/uinclude/linux/spinlock.h b/tools/lib/lockdep/uinclude/linux/spinlock.h deleted file mode 100644 index 68c1aa2bcba5..000000000000 --- a/tools/lib/lockdep/uinclude/linux/spinlock.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _LIBLOCKDEP_SPINLOCK_H_ -#define _LIBLOCKDEP_SPINLOCK_H_ - -#include -#include - -#define arch_spinlock_t pthread_mutex_t -#define __ARCH_SPIN_LOCK_UNLOCKED PTHREAD_MUTEX_INITIALIZER - -static inline void arch_spin_lock(arch_spinlock_t *mutex) -{ - pthread_mutex_lock(mutex); -} - -static inline void arch_spin_unlock(arch_spinlock_t *mutex) -{ - pthread_mutex_unlock(mutex); -} - -static inline bool arch_spin_is_locked(arch_spinlock_t *mutex) -{ - return true; -} - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/stacktrace.h b/tools/lib/lockdep/uinclude/linux/stacktrace.h deleted file mode 100644 index 39aecc6b19d1..000000000000 --- a/tools/lib/lockdep/uinclude/linux/stacktrace.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _LIBLOCKDEP_LINUX_STACKTRACE_H_ -#define _LIBLOCKDEP_LINUX_STACKTRACE_H_ - -#include - -struct stack_trace { - unsigned int nr_entries, max_entries; - unsigned long *entries; - int skip; -}; - -static inline void print_stack_trace(struct stack_trace *trace, int spaces) -{ - backtrace_symbols_fd((void **)trace->entries, trace->nr_entries, 1); -} - -#define save_stack_trace(trace) \ - ((trace)->nr_entries = \ - backtrace((void **)(trace)->entries, (trace)->max_entries)) - -static inline int dump_stack(void) -{ - void *array[64]; - size_t size; - - size = backtrace(array, 64); - backtrace_symbols_fd(array, size, 1); - - return 0; -} - -#endif diff --git a/tools/lib/lockdep/uinclude/linux/stringify.h b/tools/lib/lockdep/uinclude/linux/stringify.h deleted file mode 100644 index 05dfcd1ac118..000000000000 --- a/tools/lib/lockdep/uinclude/linux/stringify.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _LIBLOCKDEP_LINUX_STRINGIFY_H_ -#define _LIBLOCKDEP_LINUX_STRINGIFY_H_ - -#define __stringify_1(x...) #x -#define __stringify(x...) __stringify_1(x) - -#endif diff --git a/tools/lib/lockdep/uinclude/trace/events/lock.h b/tools/lib/lockdep/uinclude/trace/events/lock.h deleted file mode 100644 index fab00ff936d1..000000000000 --- a/tools/lib/lockdep/uinclude/trace/events/lock.h +++ /dev/null @@ -1,3 +0,0 @@ - -/* empty file */ - -- cgit v1.2.3