From: Yury Norov <yury.norov@xxxxxxxxx> Subject: include: move find.h from asm_generic to linux find_bit API and bitmap API are closely related, but inclusion paths are different - include/asm-generic and include/linux, correspondingly. In the past it made a lot of troubles due to circular dependencies and/or undefined symbols. Fix this by moving find.h under include/linux. Link: https://lkml.kernel.org/r/20210814211713.180533-4-yury.norov@xxxxxxxxx Signed-off-by: Yury Norov <yury.norov@xxxxxxxxx> Tested-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> Cc: Alexander Lobakin <alobakin@xxxxx> Cc: Alexey Klimov <aklimov@xxxxxxxxxx> Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Cc: Dennis Zhou <dennis@xxxxxxxxxx> Cc: Jiri Olsa <jolsa@xxxxxxxxxx> Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx> Cc: Will Deacon <will@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- MAINTAINERS | 2 arch/alpha/include/asm/bitops.h | 2 arch/arc/include/asm/bitops.h | 1 arch/arm/include/asm/bitops.h | 1 arch/arm64/include/asm/bitops.h | 1 arch/csky/include/asm/bitops.h | 1 arch/h8300/include/asm/bitops.h | 1 arch/hexagon/include/asm/bitops.h | 1 arch/ia64/include/asm/bitops.h | 2 arch/m68k/include/asm/bitops.h | 2 arch/mips/include/asm/bitops.h | 1 arch/openrisc/include/asm/bitops.h | 1 arch/parisc/include/asm/bitops.h | 2 arch/powerpc/include/asm/bitops.h | 2 arch/riscv/include/asm/bitops.h | 1 arch/s390/include/asm/bitops.h | 1 arch/sh/include/asm/bitops.h | 1 arch/sparc/include/asm/bitops_32.h | 1 arch/sparc/include/asm/bitops_64.h | 2 arch/x86/include/asm/bitops.h | 2 arch/xtensa/include/asm/bitops.h | 1 include/asm-generic/bitops.h | 1 include/linux/bitmap.h | 1 include/{asm-generic/bitops => linux}/find.h | 12 +++++++++--- 25 files changed, 270 insertions(+), 291 deletions(-) --- a/arch/alpha/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/alpha/include/asm/bitops.h @@ -430,8 +430,6 @@ static inline unsigned int __arch_hweigh #endif /* __KERNEL__ */ -#include <asm-generic/bitops/find.h> - #ifdef __KERNEL__ /* --- a/arch/arc/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/arc/include/asm/bitops.h @@ -369,7 +369,6 @@ static inline __attribute__ ((const)) un #include <asm-generic/bitops/sched.h> #include <asm-generic/bitops/lock.h> -#include <asm-generic/bitops/find.h> #include <asm-generic/bitops/le.h> #include <asm-generic/bitops/ext2-atomic-setbit.h> --- a/arch/arm64/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/arm64/include/asm/bitops.h @@ -18,7 +18,6 @@ #include <asm-generic/bitops/ffz.h> #include <asm-generic/bitops/fls64.h> -#include <asm-generic/bitops/find.h> #include <asm-generic/bitops/sched.h> #include <asm-generic/bitops/hweight.h> --- a/arch/arm/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/arm/include/asm/bitops.h @@ -264,7 +264,6 @@ static inline int find_next_bit_le(const #endif -#include <asm-generic/bitops/find.h> #include <asm-generic/bitops/le.h> /* --- a/arch/csky/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/csky/include/asm/bitops.h @@ -59,7 +59,6 @@ static __always_inline unsigned long __f #include <asm-generic/bitops/ffz.h> #include <asm-generic/bitops/fls64.h> -#include <asm-generic/bitops/find.h> #ifndef _LINUX_BITOPS_H #error only <linux/bitops.h> can be included directly --- a/arch/h8300/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/h8300/include/asm/bitops.h @@ -168,7 +168,6 @@ static inline unsigned long __ffs(unsign return result; } -#include <asm-generic/bitops/find.h> #include <asm-generic/bitops/sched.h> #include <asm-generic/bitops/hweight.h> #include <asm-generic/bitops/lock.h> --- a/arch/hexagon/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/hexagon/include/asm/bitops.h @@ -271,7 +271,6 @@ static inline unsigned long __fls(unsign } #include <asm-generic/bitops/lock.h> -#include <asm-generic/bitops/find.h> #include <asm-generic/bitops/fls64.h> #include <asm-generic/bitops/sched.h> --- a/arch/ia64/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/ia64/include/asm/bitops.h @@ -441,8 +441,6 @@ static __inline__ unsigned long __arch_h #endif /* __KERNEL__ */ -#include <asm-generic/bitops/find.h> - #ifdef __KERNEL__ #include <asm-generic/bitops/le.h> --- a/arch/m68k/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/m68k/include/asm/bitops.h @@ -529,6 +529,4 @@ static inline int __fls(int x) #include <asm-generic/bitops/le.h> #endif /* __KERNEL__ */ -#include <asm-generic/bitops/find.h> - #endif /* _M68K_BITOPS_H */ --- a/arch/mips/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/mips/include/asm/bitops.h @@ -446,7 +446,6 @@ static inline int ffs(int word) } #include <asm-generic/bitops/ffz.h> -#include <asm-generic/bitops/find.h> #ifdef __KERNEL__ --- a/arch/openrisc/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/openrisc/include/asm/bitops.h @@ -30,7 +30,6 @@ #include <asm/bitops/fls.h> #include <asm/bitops/__fls.h> #include <asm-generic/bitops/fls64.h> -#include <asm-generic/bitops/find.h> #ifndef _LINUX_BITOPS_H #error only <linux/bitops.h> can be included directly --- a/arch/parisc/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/parisc/include/asm/bitops.h @@ -208,8 +208,6 @@ static __inline__ int fls(unsigned int x #endif /* __KERNEL__ */ -#include <asm-generic/bitops/find.h> - #ifdef __KERNEL__ #include <asm-generic/bitops/le.h> --- a/arch/powerpc/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/powerpc/include/asm/bitops.h @@ -255,8 +255,6 @@ unsigned long __arch_hweight64(__u64 w); #include <asm-generic/bitops/hweight.h> #endif -#include <asm-generic/bitops/find.h> - /* wrappers that deal with KASAN instrumentation */ #include <asm-generic/bitops/instrumented-atomic.h> #include <asm-generic/bitops/instrumented-lock.h> --- a/arch/riscv/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/riscv/include/asm/bitops.h @@ -20,7 +20,6 @@ #include <asm-generic/bitops/fls.h> #include <asm-generic/bitops/__fls.h> #include <asm-generic/bitops/fls64.h> -#include <asm-generic/bitops/find.h> #include <asm-generic/bitops/sched.h> #include <asm-generic/bitops/ffs.h> --- a/arch/s390/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/s390/include/asm/bitops.h @@ -387,7 +387,6 @@ static inline int fls(unsigned int word) #endif /* CONFIG_HAVE_MARCH_Z9_109_FEATURES */ #include <asm-generic/bitops/ffz.h> -#include <asm-generic/bitops/find.h> #include <asm-generic/bitops/hweight.h> #include <asm-generic/bitops/sched.h> #include <asm-generic/bitops/le.h> --- a/arch/sh/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/sh/include/asm/bitops.h @@ -68,6 +68,5 @@ static inline unsigned long __ffs(unsign #include <asm-generic/bitops/fls64.h> #include <asm-generic/bitops/le.h> -#include <asm-generic/bitops/find.h> #endif /* __ASM_SH_BITOPS_H */ --- a/arch/sparc/include/asm/bitops_32.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/sparc/include/asm/bitops_32.h @@ -100,7 +100,6 @@ static inline void change_bit(unsigned l #include <asm-generic/bitops/fls64.h> #include <asm-generic/bitops/hweight.h> #include <asm-generic/bitops/lock.h> -#include <asm-generic/bitops/find.h> #include <asm-generic/bitops/le.h> #include <asm-generic/bitops/ext2-atomic.h> --- a/arch/sparc/include/asm/bitops_64.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/sparc/include/asm/bitops_64.h @@ -52,8 +52,6 @@ unsigned int __arch_hweight8(unsigned in #include <asm-generic/bitops/lock.h> #endif /* __KERNEL__ */ -#include <asm-generic/bitops/find.h> - #ifdef __KERNEL__ #include <asm-generic/bitops/le.h> --- a/arch/x86/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/x86/include/asm/bitops.h @@ -380,8 +380,6 @@ static __always_inline int fls64(__u64 x #include <asm-generic/bitops/fls64.h> #endif -#include <asm-generic/bitops/find.h> - #include <asm-generic/bitops/sched.h> #include <asm/arch_hweight.h> --- a/arch/xtensa/include/asm/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/arch/xtensa/include/asm/bitops.h @@ -205,7 +205,6 @@ BIT_OPS(change, "xor", ) #undef BIT_OP #undef TEST_AND_BIT_OP -#include <asm-generic/bitops/find.h> #include <asm-generic/bitops/le.h> #include <asm-generic/bitops/ext2-atomic-setbit.h> --- a/include/asm-generic/bitops.h~include-move-findh-from-asm_generic-to-linux +++ a/include/asm-generic/bitops.h @@ -20,7 +20,6 @@ #include <asm-generic/bitops/fls.h> #include <asm-generic/bitops/__fls.h> #include <asm-generic/bitops/fls64.h> -#include <asm-generic/bitops/find.h> #ifndef _LINUX_BITOPS_H #error only <linux/bitops.h> can be included directly --- a/include/linux/bitmap.h~include-move-findh-from-asm_generic-to-linux +++ a/include/linux/bitmap.h @@ -6,6 +6,7 @@ #include <linux/align.h> #include <linux/bitops.h> +#include <linux/find.h> #include <linux/limits.h> #include <linux/string.h> #include <linux/types.h> --- a/MAINTAINERS~include-move-findh-from-asm_generic-to-linux +++ a/MAINTAINERS @@ -3262,8 +3262,8 @@ M: Yury Norov <yury.norov@xxxxxxxxx> R: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> R: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx> S: Maintained -F: include/asm-generic/bitops/find.h F: include/linux/bitmap.h +F: include/linux/find.h F: lib/bitmap.c F: lib/find_bit.c F: lib/find_bit_benchmark.c _