asm-generic: make bitops.h usable

bitops.h apparently suffered from some level of bitrot, it
was missing the smp_mb__{before,after}_clear_bit functions,
and included other headers in an invalid order.

This changes the file so that new architectures can use
it out of the box.

Signed-off-by: Remis Lima Baima <remis.developer@googlemail.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2009-05-13 22:56:32 +00:00 committed by Arnd Bergmann
parent d7c4f1b78a
commit 9858c60cc2

View file

@ -1,19 +1,29 @@
#ifndef _ASM_GENERIC_BITOPS_H_ #ifndef __ASM_GENERIC_BITOPS_H
#define _ASM_GENERIC_BITOPS_H_ #define __ASM_GENERIC_BITOPS_H
/* /*
* For the benefit of those who are trying to port Linux to another * For the benefit of those who are trying to port Linux to another
* architecture, here are some C-language equivalents. You should * architecture, here are some C-language equivalents. You should
* recode these in the native assembly language, if at all possible. * recode these in the native assembly language, if at all possible.
* *
* C language equivalents written by Theodore Ts'o, 9/26/92 * C language equivalents written by Theodore Ts'o, 9/26/92
*/ */
#include <asm-generic/bitops/atomic.h> #include <linux/irqflags.h>
#include <asm-generic/bitops/non-atomic.h> #include <linux/compiler.h>
/*
* clear_bit may not imply a memory barrier
*/
#ifndef smp_mb__before_clear_bit
#define smp_mb__before_clear_bit() smp_mb()
#define smp_mb__after_clear_bit() smp_mb()
#endif
#include <asm-generic/bitops/__ffs.h> #include <asm-generic/bitops/__ffs.h>
#include <asm-generic/bitops/ffz.h> #include <asm-generic/bitops/ffz.h>
#include <asm-generic/bitops/fls.h> #include <asm-generic/bitops/fls.h>
#include <asm-generic/bitops/__fls.h>
#include <asm-generic/bitops/fls64.h> #include <asm-generic/bitops/fls64.h>
#include <asm-generic/bitops/find.h> #include <asm-generic/bitops/find.h>
@ -26,8 +36,10 @@
#include <asm-generic/bitops/hweight.h> #include <asm-generic/bitops/hweight.h>
#include <asm-generic/bitops/lock.h> #include <asm-generic/bitops/lock.h>
#include <asm-generic/bitops/atomic.h>
#include <asm-generic/bitops/non-atomic.h>
#include <asm-generic/bitops/ext2-non-atomic.h> #include <asm-generic/bitops/ext2-non-atomic.h>
#include <asm-generic/bitops/ext2-atomic.h> #include <asm-generic/bitops/ext2-atomic.h>
#include <asm-generic/bitops/minix.h> #include <asm-generic/bitops/minix.h>
#endif /* _ASM_GENERIC_BITOPS_H */ #endif /* __ASM_GENERIC_BITOPS_H */