summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/hash.h3
-rw-r--r--nest/rt-attr.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/hash.h b/lib/hash.h
index f4a953a3..b0641466 100644
--- a/lib/hash.h
+++ b/lib/hash.h
@@ -184,7 +184,8 @@ mem_hash(void *p, int s)
const char *pp = p;
const u64 multiplier = 0xb38bc09a61202731ULL;
u64 value = 0x001047d54778bcafULL;
- for (int i=0;i<s;i++)
+ int i;
+ for (i=0;i<s;i++)
value = value*multiplier + pp[i];
return ((value >> 32) ^ (value & 0xffffffff));
diff --git a/nest/rt-attr.c b/nest/rt-attr.c
index 9777a2d2..7d9605c2 100644
--- a/nest/rt-attr.c
+++ b/nest/rt-attr.c
@@ -946,7 +946,7 @@ rta_alloc_hash(void)
static inline uint
rta_hash(rta *a)
{
- return mem_hash(a + offsetof(rta, src), sizeof(rta) - offsetof(rta, src)) ^
+ return mem_hash(((void *)a) + offsetof(rta, src), sizeof(rta) - offsetof(rta, src)) ^
mpnh_hash(a->nexthops) ^ ea_hash(a->eattrs);
}