diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2007-03-16 12:10:36 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-03-16 21:03:29 -0400 |
commit | 49edd098e298b1f94748b7eb9c76374eeca7fb93 (patch) | |
tree | db864f207840ac1720706cc3490e57eb6213e00c /include/asm-mips/atomic.h | |
parent | 46230aa6ea1671690e3e5efa2a961fc0745fe9b5 (diff) |
[MIPS] Lockdep: Fix recursion bug.
trace_hardirqs_off -> atomic_inc -> local_irq_restore -> trace_hardirqs_off
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'include/asm-mips/atomic.h')
-rw-r--r-- | include/asm-mips/atomic.h | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/include/asm-mips/atomic.h b/include/asm-mips/atomic.h index 8578869a8bcf..1ac50b6c47ad 100644 --- a/include/asm-mips/atomic.h +++ b/include/asm-mips/atomic.h | |||
@@ -79,9 +79,9 @@ static __inline__ void atomic_add(int i, atomic_t * v) | |||
79 | } else { | 79 | } else { |
80 | unsigned long flags; | 80 | unsigned long flags; |
81 | 81 | ||
82 | local_irq_save(flags); | 82 | raw_local_irq_save(flags); |
83 | v->counter += i; | 83 | v->counter += i; |
84 | local_irq_restore(flags); | 84 | raw_local_irq_restore(flags); |
85 | } | 85 | } |
86 | } | 86 | } |
87 | 87 | ||
@@ -124,9 +124,9 @@ static __inline__ void atomic_sub(int i, atomic_t * v) | |||
124 | } else { | 124 | } else { |
125 | unsigned long flags; | 125 | unsigned long flags; |
126 | 126 | ||
127 | local_irq_save(flags); | 127 | raw_local_irq_save(flags); |
128 | v->counter -= i; | 128 | v->counter -= i; |
129 | local_irq_restore(flags); | 129 | raw_local_irq_restore(flags); |
130 | } | 130 | } |
131 | } | 131 | } |
132 | 132 | ||
@@ -173,11 +173,11 @@ static __inline__ int atomic_add_return(int i, atomic_t * v) | |||
173 | } else { | 173 | } else { |
174 | unsigned long flags; | 174 | unsigned long flags; |
175 | 175 | ||
176 | local_irq_save(flags); | 176 | raw_local_irq_save(flags); |
177 | result = v->counter; | 177 | result = v->counter; |
178 | result += i; | 178 | result += i; |
179 | v->counter = result; | 179 | v->counter = result; |
180 | local_irq_restore(flags); | 180 | raw_local_irq_restore(flags); |
181 | } | 181 | } |
182 | 182 | ||
183 | smp_mb(); | 183 | smp_mb(); |
@@ -225,11 +225,11 @@ static __inline__ int atomic_sub_return(int i, atomic_t * v) | |||
225 | } else { | 225 | } else { |
226 | unsigned long flags; | 226 | unsigned long flags; |
227 | 227 | ||
228 | local_irq_save(flags); | 228 | raw_local_irq_save(flags); |
229 | result = v->counter; | 229 | result = v->counter; |
230 | result -= i; | 230 | result -= i; |
231 | v->counter = result; | 231 | v->counter = result; |
232 | local_irq_restore(flags); | 232 | raw_local_irq_restore(flags); |
233 | } | 233 | } |
234 | 234 | ||
235 | smp_mb(); | 235 | smp_mb(); |
@@ -293,12 +293,12 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v) | |||
293 | } else { | 293 | } else { |
294 | unsigned long flags; | 294 | unsigned long flags; |
295 | 295 | ||
296 | local_irq_save(flags); | 296 | raw_local_irq_save(flags); |
297 | result = v->counter; | 297 | result = v->counter; |
298 | result -= i; | 298 | result -= i; |
299 | if (result >= 0) | 299 | if (result >= 0) |
300 | v->counter = result; | 300 | v->counter = result; |
301 | local_irq_restore(flags); | 301 | raw_local_irq_restore(flags); |
302 | } | 302 | } |
303 | 303 | ||
304 | smp_mb(); | 304 | smp_mb(); |
@@ -454,9 +454,9 @@ static __inline__ void atomic64_add(long i, atomic64_t * v) | |||
454 | } else { | 454 | } else { |
455 | unsigned long flags; | 455 | unsigned long flags; |
456 | 456 | ||
457 | local_irq_save(flags); | 457 | raw_local_irq_save(flags); |
458 | v->counter += i; | 458 | v->counter += i; |
459 | local_irq_restore(flags); | 459 | raw_local_irq_restore(flags); |
460 | } | 460 | } |
461 | } | 461 | } |
462 | 462 | ||
@@ -499,9 +499,9 @@ static __inline__ void atomic64_sub(long i, atomic64_t * v) | |||
499 | } else { | 499 | } else { |
500 | unsigned long flags; | 500 | unsigned long flags; |
501 | 501 | ||
502 | local_irq_save(flags); | 502 | raw_local_irq_save(flags); |
503 | v->counter -= i; | 503 | v->counter -= i; |
504 | local_irq_restore(flags); | 504 | raw_local_irq_restore(flags); |
505 | } | 505 | } |
506 | } | 506 | } |
507 | 507 | ||
@@ -548,11 +548,11 @@ static __inline__ long atomic64_add_return(long i, atomic64_t * v) | |||
548 | } else { | 548 | } else { |
549 | unsigned long flags; | 549 | unsigned long flags; |
550 | 550 | ||
551 | local_irq_save(flags); | 551 | raw_local_irq_save(flags); |
552 | result = v->counter; | 552 | result = v->counter; |
553 | result += i; | 553 | result += i; |
554 | v->counter = result; | 554 | v->counter = result; |
555 | local_irq_restore(flags); | 555 | raw_local_irq_restore(flags); |
556 | } | 556 | } |
557 | 557 | ||
558 | smp_mb(); | 558 | smp_mb(); |
@@ -600,11 +600,11 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v) | |||
600 | } else { | 600 | } else { |
601 | unsigned long flags; | 601 | unsigned long flags; |
602 | 602 | ||
603 | local_irq_save(flags); | 603 | raw_local_irq_save(flags); |
604 | result = v->counter; | 604 | result = v->counter; |
605 | result -= i; | 605 | result -= i; |
606 | v->counter = result; | 606 | v->counter = result; |
607 | local_irq_restore(flags); | 607 | raw_local_irq_restore(flags); |
608 | } | 608 | } |
609 | 609 | ||
610 | smp_mb(); | 610 | smp_mb(); |
@@ -668,12 +668,12 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) | |||
668 | } else { | 668 | } else { |
669 | unsigned long flags; | 669 | unsigned long flags; |
670 | 670 | ||
671 | local_irq_save(flags); | 671 | raw_local_irq_save(flags); |
672 | result = v->counter; | 672 | result = v->counter; |
673 | result -= i; | 673 | result -= i; |
674 | if (result >= 0) | 674 | if (result >= 0) |
675 | v->counter = result; | 675 | v->counter = result; |
676 | local_irq_restore(flags); | 676 | raw_local_irq_restore(flags); |
677 | } | 677 | } |
678 | 678 | ||
679 | smp_mb(); | 679 | smp_mb(); |