Commit 9858c60cc2d33b18367b2bc6947e3ea23db26ccb

Authored by Arnd Bergmann
Committed by Arnd Bergmann
1 parent d7c4f1b78a

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>

Showing 1 changed file with 18 additions and 6 deletions Side-by-side Diff

include/asm-generic/bitops.h
1   -#ifndef _ASM_GENERIC_BITOPS_H_
2   -#define _ASM_GENERIC_BITOPS_H_
  1 +#ifndef __ASM_GENERIC_BITOPS_H
  2 +#define __ASM_GENERIC_BITOPS_H
3 3  
4 4 /*
5 5 * For the benefit of those who are trying to port Linux to another
6 6 * architecture, here are some C-language equivalents. You should
7 7 * recode these in the native assembly language, if at all possible.
8   - *
  8 + *
9 9 * C language equivalents written by Theodore Ts'o, 9/26/92
10 10 */
11 11  
12   -#include <asm-generic/bitops/atomic.h>
13   -#include <asm-generic/bitops/non-atomic.h>
  12 +#include <linux/irqflags.h>
  13 +#include <linux/compiler.h>
  14 +
  15 +/*
  16 + * clear_bit may not imply a memory barrier
  17 + */
  18 +#ifndef smp_mb__before_clear_bit
  19 +#define smp_mb__before_clear_bit() smp_mb()
  20 +#define smp_mb__after_clear_bit() smp_mb()
  21 +#endif
  22 +
14 23 #include <asm-generic/bitops/__ffs.h>
15 24 #include <asm-generic/bitops/ffz.h>
16 25 #include <asm-generic/bitops/fls.h>
  26 +#include <asm-generic/bitops/__fls.h>
17 27 #include <asm-generic/bitops/fls64.h>
18 28 #include <asm-generic/bitops/find.h>
19 29  
20 30  
... ... @@ -26,9 +36,11 @@
26 36 #include <asm-generic/bitops/hweight.h>
27 37 #include <asm-generic/bitops/lock.h>
28 38  
  39 +#include <asm-generic/bitops/atomic.h>
  40 +#include <asm-generic/bitops/non-atomic.h>
29 41 #include <asm-generic/bitops/ext2-non-atomic.h>
30 42 #include <asm-generic/bitops/ext2-atomic.h>
31 43 #include <asm-generic/bitops/minix.h>
32 44  
33   -#endif /* _ASM_GENERIC_BITOPS_H */
  45 +#endif /* __ASM_GENERIC_BITOPS_H */