diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index ac46847..90a440c 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -271,14 +271,14 @@
 	((key1) >> (64-MAX_LOCKDEP_KEYS_BITS)) ^ \
 	(key2))
 
-notrace void lockdep_off(void)
+void lockdep_off(void)
 {
 	current->lockdep_recursion++;
 }
 
 EXPORT_SYMBOL(lockdep_off);
 
-notrace void lockdep_on(void)
+void lockdep_on(void)
 {
 	current->lockdep_recursion--;
 }
@@ -1041,7 +1041,7 @@
  * Return 1 otherwise and keep <backwards_match> unchanged.
  * Return 0 on error.
  */
-static noinline notrace int
+static noinline int
 find_usage_backwards(struct lock_class *source, unsigned int depth)
 {
 	struct lock_list *entry;
@@ -1591,7 +1591,7 @@
  * We are building curr_chain_key incrementally, so double-check
  * it from scratch, to make sure that it's done correctly:
  */
-static notrace void check_chain_key(struct task_struct *curr)
+static void check_chain_key(struct task_struct *curr)
 {
 #ifdef CONFIG_DEBUG_LOCKDEP
 	struct held_lock *hlock, *prev_hlock = NULL;
@@ -1967,7 +1967,7 @@
 /*
  * Mark all held locks with a usage bit:
  */
-static notrace int
+static int
 mark_held_locks(struct task_struct *curr, int hardirq)
 {
 	enum lock_usage_bit usage_bit;
@@ -2014,7 +2014,7 @@
 /*
  * Hardirqs will be enabled:
  */
-void notrace trace_hardirqs_on_caller(unsigned long a0)
+void trace_hardirqs_on_caller(unsigned long a0)
 {
 	struct task_struct *curr = current;
 	unsigned long ip;
@@ -2060,7 +2060,7 @@
 }
 EXPORT_SYMBOL(trace_hardirqs_on_caller);
 
-void notrace trace_hardirqs_on(void)
+void trace_hardirqs_on(void)
 {
 	trace_hardirqs_on_caller(CALLER_ADDR0);
 }
@@ -2069,7 +2069,7 @@
 /*
  * Hardirqs were disabled:
  */
-void notrace trace_hardirqs_off_caller(unsigned long a0)
+void trace_hardirqs_off_caller(unsigned long a0)
 {
 	struct task_struct *curr = current;
 
@@ -2094,7 +2094,7 @@
 }
 EXPORT_SYMBOL(trace_hardirqs_off_caller);
 
-void notrace trace_hardirqs_off(void)
+void trace_hardirqs_off(void)
 {
 	trace_hardirqs_off_caller(CALLER_ADDR0);
 }
@@ -2260,7 +2260,7 @@
 /*
  * Mark a lock with a usage bit, and validate the state transition:
  */
-static notrace int mark_lock(struct task_struct *curr, struct held_lock *this,
+static int mark_lock(struct task_struct *curr, struct held_lock *this,
 			     enum lock_usage_bit new_bit)
 {
 	unsigned int new_mask = 1 << new_bit, ret = 1;
@@ -2663,7 +2663,7 @@
 /*
  * Check whether we follow the irq-flags state precisely:
  */
-static notrace void check_flags(unsigned long flags)
+static void check_flags(unsigned long flags)
 {
 #if defined(CONFIG_DEBUG_LOCKDEP) && defined(CONFIG_TRACE_IRQFLAGS)
 	if (!debug_locks)
@@ -2700,7 +2700,7 @@
  * We are not always called with irqs disabled - do that here,
  * and also avoid lockdep recursion:
  */
-notrace void lock_acquire(struct lockdep_map *lock, unsigned int subclass,
+void lock_acquire(struct lockdep_map *lock, unsigned int subclass,
 			  int trylock, int read, int check, unsigned long ip)
 {
 	unsigned long flags;
@@ -2723,7 +2723,7 @@
 
 EXPORT_SYMBOL_GPL(lock_acquire);
 
-notrace void lock_release(struct lockdep_map *lock, int nested,
+void lock_release(struct lockdep_map *lock, int nested,
 			  unsigned long ip)
 {
 	unsigned long flags;
