aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-mips/atomic.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2007-03-16 12:10:36 -0400
committerRalf Baechle <ralf@linux-mips.org>2007-03-16 21:03:29 -0400
commit49edd098e298b1f94748b7eb9c76374eeca7fb93 (patch)
treedb864f207840ac1720706cc3490e57eb6213e00c /include/asm-mips/atomic.h
parent46230aa6ea1671690e3e5efa2a961fc0745fe9b5 (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.h40
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();