hi,
Looks like this crept in with that 2.5 quota port, Christoph.
On 2.5, L1_CACHE_SHIFT is declared for all architectures. I
guess we could go back to using HASHDEV(sb->s_dev?) for 2.4?
A simple build fix, Ethan, would be to change dquot.c::hashfn
so that it uses the HASHDEV macro again (similar to revision
1.48 of fs/dquot.c, except no dev parameter anymore so use
sb->s_dev instead). I'll wait to hear from Christoph &/ Jan
before checking anything into the tree though.
cheers.
--
Nathan
On Sat, Aug 03, 2002 at 02:50:56PM -0800, Ethan Benson wrote:
> This may not be the right place to report this, but...
>
> on powerpc the following occurs:
>
> gcc -D__KERNEL__ -I/usr/local/src/linux-2.4.19/include -Wall
> -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing
> -fno-common -fomit-frame-pointer -D__powerpc__ -fsigned-char
> -msoft-float -pipe -ffixed-r2 -Wno-uninitialized -mmultiple -mstring
> -nostdinc -I /usr/lib/gcc-lib/powerpc-linux/2.95.4/include
> -DKBUILD_BASENAME=dquot -DEXPORT_SYMTAB -c dquot.c
> dquot.c: In function `hashfn':
> dquot.c:182: `L1_CACHE_SHIFT' undeclared (first use in this function)
> dquot.c:182: (Each undeclared identifier is reported only once
> dquot.c:182: for each function it appears in.)
> dquot.c:183: warning: control reaches end of non-void function
> make[3]: *** [dquot.o] Error 1
> make[3]: Leaving directory `/usr/local/src/linux-2.4.19/fs'
> make[2]: *** [first_rule] Error 2
> make[2]: Leaving directory `/usr/local/src/linux-2.4.19/fs'
> make[1]: *** [_dir_fs] Error 2
>
> AFAICT L1_CACHE_SHIFT is not defined for the powerpc arch (only alpha,
> mips64, s390, i386 and ia64 define it).
>
> the offending line is:
>
> static inline int const hashfn(struct super_block *sb, unsigned int
> id, int type)
> {
> return((((unsigned long)sb>>L1_CACHE_SHIFT) ^ id) * (MAXQUOTAS -
> type)) % NR_DQHASH;
> }
>
> this changed somewhere between -rc3 and the final 2.4.19 (rc3 was fine).
>
> --
> Ethan Benson
> http://www.alaska.net/~erbenson/
|