diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/Makefile | 8 | ||||
-rw-r--r-- | kernel/lockdep.c | 26 |
2 files changed, 21 insertions, 13 deletions
diff --git a/kernel/Makefile b/kernel/Makefile index 7e344e7b0cb3..d2f80ea4cd9a 100644 --- a/kernel/Makefile +++ b/kernel/Makefile | |||
@@ -11,6 +11,14 @@ obj-y = sched.o fork.o exec_domain.o panic.o printk.o profile.o \ | |||
11 | hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \ | 11 | hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \ |
12 | notifier.o ksysfs.o pm_qos_params.o sched_clock.o | 12 | notifier.o ksysfs.o pm_qos_params.o sched_clock.o |
13 | 13 | ||
14 | ifdef CONFIG_FTRACE | ||
15 | # Do not profile debug utilities | ||
16 | ORIG_CFLAGS := $(KBUILD_CFLAGS) | ||
17 | KBUILD_CFLAGS = $(if $(filter-out lockdep% %debug,$(basename $(notdir $@))), \ | ||
18 | $(ORIG_CFLAGS), \ | ||
19 | $(subst -pg,,$(ORIG_CFLAGS))) | ||
20 | endif | ||
21 | |||
14 | obj-$(CONFIG_SYSCTL_SYSCALL_CHECK) += sysctl_check.o | 22 | obj-$(CONFIG_SYSCTL_SYSCALL_CHECK) += sysctl_check.o |
15 | obj-$(CONFIG_STACKTRACE) += stacktrace.o | 23 | obj-$(CONFIG_STACKTRACE) += stacktrace.o |
16 | obj-y += time/ | 24 | obj-y += time/ |
diff --git a/kernel/lockdep.c b/kernel/lockdep.c index ac46847ba0c9..90a440cbd6de 100644 --- a/kernel/lockdep.c +++ b/kernel/lockdep.c | |||
@@ -271,14 +271,14 @@ static struct list_head chainhash_table[CHAINHASH_SIZE]; | |||
271 | ((key1) >> (64-MAX_LOCKDEP_KEYS_BITS)) ^ \ | 271 | ((key1) >> (64-MAX_LOCKDEP_KEYS_BITS)) ^ \ |
272 | (key2)) | 272 | (key2)) |
273 | 273 | ||
274 | notrace void lockdep_off(void) | 274 | void lockdep_off(void) |
275 | { | 275 | { |
276 | current->lockdep_recursion++; | 276 | current->lockdep_recursion++; |
277 | } | 277 | } |
278 | 278 | ||
279 | EXPORT_SYMBOL(lockdep_off); | 279 | EXPORT_SYMBOL(lockdep_off); |
280 | 280 | ||
281 | notrace void lockdep_on(void) | 281 | void lockdep_on(void) |
282 | { | 282 | { |
283 | current->lockdep_recursion--; | 283 | current->lockdep_recursion--; |
284 | } | 284 | } |
@@ -1041,7 +1041,7 @@ find_usage_forwards(struct lock_class *source, unsigned int depth) | |||
1041 | * Return 1 otherwise and keep <backwards_match> unchanged. | 1041 | * Return 1 otherwise and keep <backwards_match> unchanged. |
1042 | * Return 0 on error. | 1042 | * Return 0 on error. |
1043 | */ | 1043 | */ |
1044 | static noinline notrace int | 1044 | static noinline int |
1045 | find_usage_backwards(struct lock_class *source, unsigned int depth) | 1045 | find_usage_backwards(struct lock_class *source, unsigned int depth) |
1046 | { | 1046 | { |
1047 | struct lock_list *entry; | 1047 | struct lock_list *entry; |
@@ -1591,7 +1591,7 @@ static inline int validate_chain(struct task_struct *curr, | |||
1591 | * We are building curr_chain_key incrementally, so double-check | 1591 | * We are building curr_chain_key incrementally, so double-check |
1592 | * it from scratch, to make sure that it's done correctly: | 1592 | * it from scratch, to make sure that it's done correctly: |
1593 | */ | 1593 | */ |
1594 | static notrace void check_chain_key(struct task_struct *curr) | 1594 | static void check_chain_key(struct task_struct *curr) |
1595 | { | 1595 | { |
1596 | #ifdef CONFIG_DEBUG_LOCKDEP | 1596 | #ifdef CONFIG_DEBUG_LOCKDEP |
1597 | struct held_lock *hlock, *prev_hlock = NULL; | 1597 | struct held_lock *hlock, *prev_hlock = NULL; |
@@ -1967,7 +1967,7 @@ static int mark_lock_irq(struct task_struct *curr, struct held_lock *this, | |||
1967 | /* | 1967 | /* |
1968 | * Mark all held locks with a usage bit: | 1968 | * Mark all held locks with a usage bit: |
1969 | */ | 1969 | */ |
1970 | static notrace int | 1970 | static int |
1971 | mark_held_locks(struct task_struct *curr, int hardirq) | 1971 | mark_held_locks(struct task_struct *curr, int hardirq) |
1972 | { | 1972 | { |
1973 | enum lock_usage_bit usage_bit; | 1973 | enum lock_usage_bit usage_bit; |
@@ -2014,7 +2014,7 @@ void early_boot_irqs_on(void) | |||
2014 | /* | 2014 | /* |
2015 | * Hardirqs will be enabled: | 2015 | * Hardirqs will be enabled: |
2016 | */ | 2016 | */ |
2017 | void notrace trace_hardirqs_on_caller(unsigned long a0) | 2017 | void trace_hardirqs_on_caller(unsigned long a0) |
2018 | { | 2018 | { |
2019 | struct task_struct *curr = current; | 2019 | struct task_struct *curr = current; |
2020 | unsigned long ip; | 2020 | unsigned long ip; |
@@ -2060,7 +2060,7 @@ void notrace trace_hardirqs_on_caller(unsigned long a0) | |||
2060 | } | 2060 | } |
2061 | EXPORT_SYMBOL(trace_hardirqs_on_caller); | 2061 | EXPORT_SYMBOL(trace_hardirqs_on_caller); |
2062 | 2062 | ||
2063 | void notrace trace_hardirqs_on(void) | 2063 | void trace_hardirqs_on(void) |
2064 | { | 2064 | { |
2065 | trace_hardirqs_on_caller(CALLER_ADDR0); | 2065 | trace_hardirqs_on_caller(CALLER_ADDR0); |
2066 | } | 2066 | } |
@@ -2069,7 +2069,7 @@ EXPORT_SYMBOL(trace_hardirqs_on); | |||
2069 | /* | 2069 | /* |
2070 | * Hardirqs were disabled: | 2070 | * Hardirqs were disabled: |
2071 | */ | 2071 | */ |
2072 | void notrace trace_hardirqs_off_caller(unsigned long a0) | 2072 | void trace_hardirqs_off_caller(unsigned long a0) |
2073 | { | 2073 | { |
2074 | struct task_struct *curr = current; | 2074 | struct task_struct *curr = current; |
2075 | 2075 | ||
@@ -2094,7 +2094,7 @@ void notrace trace_hardirqs_off_caller(unsigned long a0) | |||
2094 | } | 2094 | } |
2095 | EXPORT_SYMBOL(trace_hardirqs_off_caller); | 2095 | EXPORT_SYMBOL(trace_hardirqs_off_caller); |
2096 | 2096 | ||
2097 | void notrace trace_hardirqs_off(void) | 2097 | void trace_hardirqs_off(void) |
2098 | { | 2098 | { |
2099 | trace_hardirqs_off_caller(CALLER_ADDR0); | 2099 | trace_hardirqs_off_caller(CALLER_ADDR0); |
2100 | } | 2100 | } |
@@ -2260,7 +2260,7 @@ static inline int separate_irq_context(struct task_struct *curr, | |||
2260 | /* | 2260 | /* |
2261 | * Mark a lock with a usage bit, and validate the state transition: | 2261 | * Mark a lock with a usage bit, and validate the state transition: |
2262 | */ | 2262 | */ |
2263 | static notrace int mark_lock(struct task_struct *curr, struct held_lock *this, | 2263 | static int mark_lock(struct task_struct *curr, struct held_lock *this, |
2264 | enum lock_usage_bit new_bit) | 2264 | enum lock_usage_bit new_bit) |
2265 | { | 2265 | { |
2266 | unsigned int new_mask = 1 << new_bit, ret = 1; | 2266 | unsigned int new_mask = 1 << new_bit, ret = 1; |
@@ -2663,7 +2663,7 @@ __lock_release(struct lockdep_map *lock, int nested, unsigned long ip) | |||
2663 | /* | 2663 | /* |
2664 | * Check whether we follow the irq-flags state precisely: | 2664 | * Check whether we follow the irq-flags state precisely: |
2665 | */ | 2665 | */ |
2666 | static notrace void check_flags(unsigned long flags) | 2666 | static void check_flags(unsigned long flags) |
2667 | { | 2667 | { |
2668 | #if defined(CONFIG_DEBUG_LOCKDEP) && defined(CONFIG_TRACE_IRQFLAGS) | 2668 | #if defined(CONFIG_DEBUG_LOCKDEP) && defined(CONFIG_TRACE_IRQFLAGS) |
2669 | if (!debug_locks) | 2669 | if (!debug_locks) |
@@ -2700,7 +2700,7 @@ static notrace void check_flags(unsigned long flags) | |||
2700 | * We are not always called with irqs disabled - do that here, | 2700 | * We are not always called with irqs disabled - do that here, |
2701 | * and also avoid lockdep recursion: | 2701 | * and also avoid lockdep recursion: |
2702 | */ | 2702 | */ |
2703 | notrace void lock_acquire(struct lockdep_map *lock, unsigned int subclass, | 2703 | void lock_acquire(struct lockdep_map *lock, unsigned int subclass, |
2704 | int trylock, int read, int check, unsigned long ip) | 2704 | int trylock, int read, int check, unsigned long ip) |
2705 | { | 2705 | { |
2706 | unsigned long flags; | 2706 | unsigned long flags; |
@@ -2723,7 +2723,7 @@ notrace void lock_acquire(struct lockdep_map *lock, unsigned int subclass, | |||
2723 | 2723 | ||
2724 | EXPORT_SYMBOL_GPL(lock_acquire); | 2724 | EXPORT_SYMBOL_GPL(lock_acquire); |
2725 | 2725 | ||
2726 | notrace void lock_release(struct lockdep_map *lock, int nested, | 2726 | void lock_release(struct lockdep_map *lock, int nested, |
2727 | unsigned long ip) | 2727 | unsigned long ip) |
2728 | { | 2728 | { |
2729 | unsigned long flags; | 2729 | unsigned long flags; |