--- linux-2.6.15-rc5/arch/x86_64/mm/numa.c 2005-12-04 06:10:42.000000000 +0100 +++ linux-2.6.15-rc5-ed/arch/x86_64/mm/numa.c 2005-12-07 16:45:15.000000000 +0100 @@ -53,6 +53,8 @@ int res = -1; unsigned long addr, end; + if (shift >= 64) + return -1; memset(memnodemap, 0xff, sizeof(memnodemap)); for (i = 0; i < numnodes; i++) { addr = nodes[i].start; @@ -65,7 +67,7 @@ if (memnodemap[addr >> shift] != 0xff) return -1; memnodemap[addr >> shift] = i; - addr += (1 << shift); + addr += (1UL << shift); } while (addr < end); res = 1; }