diff options
Diffstat (limited to 'kernel/locking/lockdep.c')
| -rw-r--r-- | kernel/locking/lockdep.c | 35 | 
1 files changed, 5 insertions, 30 deletions
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c index 5fa4d3138bf1..e406c5fdb41e 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -55,6 +55,7 @@  #include "lockdep_internals.h" +#include <trace/events/preemptirq.h>  #define CREATE_TRACE_POINTS  #include <trace/events/lock.h> @@ -248,12 +249,7 @@ void clear_lock_stats(struct lock_class *class)  static struct lock_class_stats *get_lock_stats(struct lock_class *class)  { -	return &get_cpu_var(cpu_lock_stats)[class - lock_classes]; -} - -static void put_lock_stats(struct lock_class_stats *stats) -{ -	put_cpu_var(cpu_lock_stats); +	return &this_cpu_ptr(cpu_lock_stats)[class - lock_classes];  }  static void lock_release_holdtime(struct held_lock *hlock) @@ -271,7 +267,6 @@ static void lock_release_holdtime(struct held_lock *hlock)  		lock_time_inc(&stats->read_holdtime, holdtime);  	else  		lock_time_inc(&stats->write_holdtime, holdtime); -	put_lock_stats(stats);  }  #else  static inline void lock_release_holdtime(struct held_lock *hlock) @@ -2845,10 +2840,8 @@ static void __trace_hardirqs_on_caller(unsigned long ip)  	debug_atomic_inc(hardirqs_on_events);  } -__visible void trace_hardirqs_on_caller(unsigned long ip) +void lockdep_hardirqs_on(unsigned long ip)  { -	time_hardirqs_on(CALLER_ADDR0, ip); -  	if (unlikely(!debug_locks || current->lockdep_recursion))  		return; @@ -2887,23 +2880,14 @@ __visible void trace_hardirqs_on_caller(unsigned long ip)  	__trace_hardirqs_on_caller(ip);  	current->lockdep_recursion = 0;  } -EXPORT_SYMBOL(trace_hardirqs_on_caller); - -void trace_hardirqs_on(void) -{ -	trace_hardirqs_on_caller(CALLER_ADDR0); -} -EXPORT_SYMBOL(trace_hardirqs_on);  /*   * Hardirqs were disabled:   */ -__visible void trace_hardirqs_off_caller(unsigned long ip) +void lockdep_hardirqs_off(unsigned long ip)  {  	struct task_struct *curr = current; -	time_hardirqs_off(CALLER_ADDR0, ip); -  	if (unlikely(!debug_locks || current->lockdep_recursion))  		return; @@ -2925,13 +2909,6 @@ __visible void trace_hardirqs_off_caller(unsigned long ip)  	} else  		debug_atomic_inc(redundant_hardirqs_off);  } -EXPORT_SYMBOL(trace_hardirqs_off_caller); - -void trace_hardirqs_off(void) -{ -	trace_hardirqs_off_caller(CALLER_ADDR0); -} -EXPORT_SYMBOL(trace_hardirqs_off);  /*   * Softirqs will be enabled: @@ -4090,7 +4067,6 @@ __lock_contended(struct lockdep_map *lock, unsigned long ip)  		stats->contending_point[contending_point]++;  	if (lock->cpu != smp_processor_id())  		stats->bounces[bounce_contended + !!hlock->read]++; -	put_lock_stats(stats);  }  static void @@ -4138,7 +4114,6 @@ __lock_acquired(struct lockdep_map *lock, unsigned long ip)  	}  	if (lock->cpu != cpu)  		stats->bounces[bounce_acquired + !!hlock->read]++; -	put_lock_stats(stats);  	lock->cpu = cpu;  	lock->ip = ip; @@ -4338,7 +4313,7 @@ out_restore:  	raw_local_irq_restore(flags);  } -void __init lockdep_info(void) +void __init lockdep_init(void)  {  	printk("Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar\n");  |