Dongsheng Wang <[email protected]> writes: > From: Wang Dongsheng <[email protected]> > > This issue caused on 'commit 990486c8af04 ("strscpy: zero any trailing > garbage bytes in the destination")'. > > zero_bytemask is not implemented on PowerPC. So copy the zero_bytemask > of BIG_ENDIAN implementation from include/asm-generic/word-at-a-time.h > to arch/powerpc/include/asm/word-at-a-time.h. > > Build message: > lib/string.c: In function 'strscpy': > lib/string.c:209:4: error: implicit declaration of function > 'zero_bytemask' [-Werror=implicit-function-declaration] > *(unsigned long *)(dest+res) = c & zero_bytemask(data); > cc1: some warnings being treated as errors > make[1]: *** [lib/string.o] Error 1 > make[1]: *** Waiting for unfinished jobs.... > > Signed-off-by: Wang Dongsheng <[email protected]> > > diff --git a/arch/powerpc/include/asm/word-at-a-time.h > b/arch/powerpc/include/asm/word-at-a-time.h > index 5b3a903..d891456 100644 > --- a/arch/powerpc/include/asm/word-at-a-time.h > +++ b/arch/powerpc/include/asm/word-at-a-time.h > @@ -40,6 +40,10 @@ static inline bool has_zero(unsigned long val, unsigned > long *data, const struct > return (val + c->high_bits) & ~rhs; > } > > +#ifndef zero_bytemask > +#define zero_bytemask(mask) (~1ul << __fls(mask)) > +#endif > + > #else
Why #ifndef zero_bytemask ?. What will override zero_bytemask defined in arch headers. We generally do it such that generic code does #ifndef, but arch headers doesn't need to do this. -aneesh -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

