diff options
| -rw-r--r-- | kernel/lockdep.c | 7 | ||||
| -rw-r--r-- | kernel/lockdep_internals.h | 10 |
2 files changed, 8 insertions, 9 deletions
diff --git a/kernel/lockdep.c b/kernel/lockdep.c index 78325f8f1139..1b58a1bbcc87 100644 --- a/kernel/lockdep.c +++ b/kernel/lockdep.c | |||
| @@ -2298,7 +2298,12 @@ void trace_hardirqs_on_caller(unsigned long ip) | |||
| 2298 | return; | 2298 | return; |
| 2299 | 2299 | ||
| 2300 | if (unlikely(curr->hardirqs_enabled)) { | 2300 | if (unlikely(curr->hardirqs_enabled)) { |
| 2301 | debug_atomic_inc(redundant_hardirqs_on); | 2301 | /* |
| 2302 | * Neither irq nor preemption are disabled here | ||
| 2303 | * so this is racy by nature but loosing one hit | ||
| 2304 | * in a stat is not a big deal. | ||
| 2305 | */ | ||
| 2306 | this_cpu_inc(lockdep_stats.redundant_hardirqs_on); | ||
| 2302 | return; | 2307 | return; |
| 2303 | } | 2308 | } |
| 2304 | /* we'll do an OFF -> ON transition: */ | 2309 | /* we'll do an OFF -> ON transition: */ |
diff --git a/kernel/lockdep_internals.h b/kernel/lockdep_internals.h index 8d7d4b6c741a..2b174762fa0e 100644 --- a/kernel/lockdep_internals.h +++ b/kernel/lockdep_internals.h | |||
| @@ -140,19 +140,13 @@ struct lockdep_stats { | |||
| 140 | DECLARE_PER_CPU(struct lockdep_stats, lockdep_stats); | 140 | DECLARE_PER_CPU(struct lockdep_stats, lockdep_stats); |
| 141 | 141 | ||
| 142 | #define debug_atomic_inc(ptr) { \ | 142 | #define debug_atomic_inc(ptr) { \ |
| 143 | struct lockdep_stats *__cpu_lockdep_stats; \ | ||
| 144 | \ | ||
| 145 | WARN_ON_ONCE(!irqs_disabled()); \ | 143 | WARN_ON_ONCE(!irqs_disabled()); \ |
| 146 | __cpu_lockdep_stats = &__get_cpu_var(lockdep_stats); \ | 144 | this_cpu_inc(lockdep_stats.ptr); \ |
| 147 | __cpu_lockdep_stats->ptr++; \ | ||
| 148 | } | 145 | } |
| 149 | 146 | ||
| 150 | #define debug_atomic_dec(ptr) { \ | 147 | #define debug_atomic_dec(ptr) { \ |
| 151 | struct lockdep_stats *__cpu_lockdep_stats; \ | ||
| 152 | \ | ||
| 153 | WARN_ON_ONCE(!irqs_disabled()); \ | 148 | WARN_ON_ONCE(!irqs_disabled()); \ |
| 154 | __cpu_lockdep_stats = &__get_cpu_var(lockdep_stats); \ | 149 | this_cpu_inc(lockdep_stats.ptr); \ |
| 155 | __cpu_lockdep_stats->ptr--; \ | ||
| 156 | } | 150 | } |
| 157 | 151 | ||
| 158 | #define debug_atomic_read(ptr) ({ \ | 152 | #define debug_atomic_read(ptr) ({ \ |
