android_kernel_xiaomi_sm8350/include/asm-frv
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
..
atomic.h Fix FRV cmpxchg_local 2008-02-08 15:33:32 -08:00
auxvec.h
ax88796.h
bitops.h Fix FRV cmpxchg_local 2008-02-08 15:33:32 -08:00
bug.h
bugs.h
busctl-regs.h
byteorder.h
cache.h
cacheflush.h include/asm-frv/: Spelling fixes 2008-02-03 17:34:55 +02:00
checksum.h
cpu-irqs.h
cpumask.h
cputime.h
current.h
delay.h
device.h
div64.h
dm9000.h
dma-mapping.h FRV: move DMA macros to scatterlist.h for consistency. 2008-02-05 09:44:20 -08:00
dma.h
elf.h Cleanup asm/{elf,page,user}.h: #ifdef __KERNEL__ is no longer needed 2008-02-07 08:42:30 -08:00
emergency-restart.h
errno.h
fb.h fbdev: detect primary display device 2007-07-17 10:23:11 -07:00
fcntl.h
fpu.h
futex.h
gdb-stub.h
gpio-regs.h
hardirq.h
highmem.h move frv docs one level up 2008-02-03 15:54:28 +02:00
hw_irq.h
ide.h ide: remove stale ide.h "configuration options" 2008-01-25 22:17:08 +01:00
init.h
io.h
ioctl.h
ioctls.h
ipcbuf.h
irc-regs.h
irq_regs.h
irq.h frv: Remove bogus NO_IRQ = -1 define 2007-11-09 15:11:44 -08:00
Kbuild Unexport asm/page.h 2008-02-07 08:42:30 -08:00
kdebug.h move die notifier handling to common code 2007-05-08 11:15:04 -07:00
kmap_types.h
linkage.h
local.h
math-emu.h
mb86943a.h FRV: Enable the MB86943 PCI arbiter correctly 2007-08-01 20:48:17 -07:00
mb93091-fpga-irqs.h
mb93093-fpga-irqs.h
mb93493-irqs.h
mb93493-regs.h
mb-regs.h
mc146818rtc.h
mem-layout.h move frv docs one level up 2008-02-03 15:54:28 +02:00
mman.h
mmu_context.h
mmu.h
module.h
msgbuf.h
mutex.h
namei.h
page.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
param.h avoid overflows in kernel/time.c 2008-02-08 09:22:39 -08:00
pci.h PCI: remove pci_dac_dma_... APIs 2007-07-11 16:02:11 -07:00
percpu.h
pgalloc.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
pgtable.h add mm argument to pte/pmd/pud/pgd_free 2008-02-05 09:44:18 -08:00
poll.h Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
posix_types.h asm-*/posix_types.h: scrub __GLIBC__ 2008-02-08 09:22:34 -08:00
processor.h
ptrace.h
registers.h
resource.h
scatterlist.h FRV: move DMA macros to scatterlist.h for consistency. 2008-02-05 09:44:20 -08:00
sections.h
segment.h
semaphore.h kill DECLARE_MUTEX_LOCKED 2007-10-17 08:42:47 -07:00
sembuf.h
serial-regs.h
serial.h
setup.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
smp.h
socket.h [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
sockios.h
spinlock.h
spr-regs.h
stat.h
statfs.h
string.h
suspend.h
system.h Fix FRV cmpxchg_local 2008-02-08 15:33:32 -08:00
termbits.h lots-of-architectures: enable arbitary speed tty support 2007-07-10 17:51:13 -07:00
termios.h
thread_info.h include/asm-frv/thread_info.h: kmalloc + memset conversion to kzalloc 2007-10-16 09:43:03 -07:00
timer-regs.h
timex.h
tlb.h FRV: Replace pgd management via slabs through quicklists 2007-05-09 12:30:46 -07:00
tlbflush.h remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
topology.h
types.h remove strict ansi check from __u64 in asm/types.h 2007-10-17 08:42:53 -07:00
uaccess.h frv: missing __clear_user() 2007-07-15 16:40:52 -07:00
ucontext.h
unaligned.h
unistd.h timerfd: fix remaining architectures 2008-02-05 14:37:15 -08:00
user.h
vga.h
virtconvert.h
xor.h