Hi Simon, On Tuesday 15 September 2009 22:34:43 Wolfgang Denk wrote: > Dear Simon Kagstrom, > > In message <20090824091012.0df5b...@marrow.netinsight.se> you wrote: > > Define ffs/fls for all architectures > > > > UBIFS requires fls(), which is not defined for arm (and some other > > architectures) and this patch adds it. The implementation is taken from > > Linux and is generic. ffs() is also defined for those that miss it. > > > > Signed-off-by: Simon Kagstrom <simon.kagst...@netinsight.net> > > --- > > ChangeLog: > > v2: Unify code style (empty line between ffs/fls) > > v3: Move the definition to generic code (Mike Frysinger) > > > > include/asm-i386/bitops.h | 1 + > > include/asm-m68k/bitops.h | 1 + > > include/asm-nios/bitops.h | 1 + > > include/asm-nios2/bitops.h | 1 + > > include/asm-ppc/bitops.h | 2 + > > include/asm-sh/bitops.h | 2 + > > include/linux/bitops.h | 45 > > ++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 53 > > insertions(+), 0 deletions(-) > > Applied, thanks.
I'm seeing strange problem on some PPC4xx platforms (CFI FLASH driver on Sequoia) with recent U-Boot. Bisecting lead me to this patch. And looking at the PPC implementation, I can see that this can't work: include/asm-ppc/bitops.h: @@ -230,6 +231,7 @@ extern __inline__ int ffs(int x) { return __ilog2(x & -x) + 1; } +#define ffs So after "ffs()" is define as an inline function, you define it to nothing. I understand that you need a flag for include/linux/bitops.h, to decide if the platform version of this function should be used or the generic version: include/linux/bitops.h: +#ifndef ffs +# define ffs generic_ffs +#endif But this only works for platforms which don't supply a platform specific ffs function. One way to solve this would be something like this: include/asm-ppc/bitops.h: @@ -230,6 +231,7 @@ extern __inline__ int ffs(int x) { return __ilog2(x & -x) + 1; } +#define PLATFORM_FFS include/linux/bitops.h: +#ifndef PLATFORM_FFS +# define ffs generic_ffs +#endif Perhaps there is an more elegant way to solve this problem. Patches welcome ;) Thanks. Cheers, Stefan -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: off...@denx.de _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot