Mathieu Desnoyers 6784fd5931 Fix FRV cmpxchg_local
Fix the FRV cmpxchg_local by breaking the following header dependency loop :

linux/kernel.h -> linux/bitops.h -> asm-frv/bitops.h -> asm-frv/atomic.h
  -> asm-frv/system.h ->
  asm-generic/cmpxchg_local.h -> typecheck() defined in linux/kernel.h

and

linux/kernel.h -> linux/bitops.h -> asm-frv/bitops.h -> asm-frv/atomic.h ->
  asm-generic/cmpxchg_local.h -> typecheck() defined in linux/kernel.h

In order to fix this :
- Move the atomic_test_and_ *_mask inlines from asm-frv/atomic.h (why are they
  there at all anyway ? They are not touching atomic_t variables!) to
  asm-frv/bitops.h.

Also fix a build issue with cmpxchg : it does not cast to (unsigned long *)
like other architectures, to deal with it in the cmpxchg_local macro.

FRV builds fine with this patch.

Thanks to Adrian Bunk <bunk@kernel.org> for spotting this bug.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Adrian Bunk <bunk@kernel.org>
Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-08 15:33:32 -08:00
..
2008-02-08 15:33:32 -08:00
2005-09-07 16:57:21 -07:00
2005-04-16 15:20:36 -07:00
2008-02-08 15:33:32 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2008-02-03 17:34:55 +02:00
2006-12-02 21:23:03 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-07-17 10:23:11 -07:00
2005-04-16 15:20:36 -07:00
2008-02-03 15:54:28 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-10-11 11:14:23 -07:00
2006-01-10 08:01:34 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-11-09 15:11:44 -08:00
2008-02-07 08:42:30 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2008-02-03 15:54:28 +02:00
2006-02-15 15:32:22 -08:00
2005-04-16 15:20:36 -07:00
2006-01-08 20:13:37 -08:00
2005-04-16 15:20:36 -07:00
2006-10-03 23:01:26 +02:00
2008-02-08 09:22:39 -08:00
2007-07-11 16:02:11 -07:00
2005-04-16 15:20:36 -07:00
2007-05-11 08:29:34 -07:00
2007-02-01 16:17:05 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-10-17 08:42:47 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2008-02-08 15:33:32 -08:00
2005-04-16 15:20:36 -07:00
2007-10-19 11:53:34 -07:00
2005-04-16 15:20:36 -07:00
2007-07-15 16:40:52 -07:00
2005-04-16 15:20:36 -07:00
2008-02-05 14:37:15 -08:00
2005-04-16 15:20:36 -07:00
2006-01-08 20:13:38 -08:00
2006-01-08 20:13:38 -08:00