|
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;
}
|