Fix numa001 failure with "too many NUMA nodes"
[ghc.git] / rts / FileLock.c
index 3a05204..f8e11ee 100644 (file)
@@ -41,11 +41,12 @@ static int cmpLocks(StgWord w1, StgWord w2)
     return (l1->device == l2->device && l1->inode == l2->inode);
 }
 
-static int hashLock(HashTable *table, StgWord w)
+static int hashLock(const HashTable *table, StgWord w)
 {
     Lock *l = (Lock *)w;
+    StgWord key = l->inode ^ (l->inode >> 32) ^ l->device ^ (l->device >> 32);
     // Just xor all 32-bit words of inode and device, hope this is good enough.
-    return hashWord(table, l->inode ^ (l->inode >> 32) ^ l->device ^ (l->device >> 32));
+    return hashWord(table, key);
 }
 
 void