From: Kenn H. <ke...@us...> - 2003-08-23 04:02:32
|
Update of /cvsroot/linux-vax/kernel-2.5/lib In directory sc8-pr-cvs1:/tmp/cvs-serv2835/lib Modified Files: radix-tree.c Log Message: Workaround a bug in our compiler Index: radix-tree.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/lib/radix-tree.c,v retrieving revision 1.1.1.13 retrieving revision 1.2 diff -u -r1.1.1.13 -r1.2 --- radix-tree.c 19 Aug 2003 12:39:16 -0000 1.1.1.13 +++ radix-tree.c 19 Aug 2003 19:30:15 -0000 1.2 @@ -401,10 +401,16 @@ static __init unsigned long __maxindex(unsigned int height) { unsigned int tmp = height * RADIX_TREE_MAP_SHIFT; - unsigned long index = (~0UL >> (RADIX_TREE_INDEX_BITS - tmp - 1)) >> 1; + unsigned long index; - if (tmp >= RADIX_TREE_INDEX_BITS) + /* This is different from the stock kernel, since our GCC emits + code which throws a reserved operand fault when height == 6. + FIXME: we need to fix our compiler :-( */ + if (tmp >= RADIX_TREE_INDEX_BITS) { index = ~0UL; + } else { + index = (~0UL >> (RADIX_TREE_INDEX_BITS - tmp - 1)) >> 1; + } return index; } |