summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2014-02-18 14:21:26 +0000
committerglebius <glebius@FreeBSD.org>2014-02-18 14:21:26 +0000
commitd61db4cf9544da0717efc8d718d42a195a86dec3 (patch)
treed4ff901013ef8a54949800c92888580b6f70745d
parent0e6492a43b15d89a77448ef15ccc85b4d6feea1d (diff)
downloadFreeBSD-src-d61db4cf9544da0717efc8d718d42a195a86dec3.zip
FreeBSD-src-d61db4cf9544da0717efc8d718d42a195a86dec3.tar.gz
Fix incorrect assertions.
-rw-r--r--sys/net/flowtable.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/net/flowtable.c b/sys/net/flowtable.c
index 393d775..873ec36 100644
--- a/sys/net/flowtable.c
+++ b/sys/net/flowtable.c
@@ -634,7 +634,8 @@ flowtable_insert(struct flowtable *ft, uint32_t hash, uint32_t *key,
* preempted by another thread handling this flow
*/
SLIST_FOREACH(iter, flist, f_next) {
- KASSERT(iter->f_hash == hash, ("%s: wrong hash", __func__));
+ KASSERT(iter->f_hash % ft->ft_size == hash % ft->ft_size,
+ ("%s: wrong hash", __func__));
if (flow_matches(iter, key, keylen, fibnum)) {
/*
* We probably migrated to an other CPU after
@@ -714,7 +715,8 @@ flowtable_lookup_common(struct flowtable *ft, uint32_t *key, int keylen,
critical_enter();
flist = flowtable_list(ft, hash);
SLIST_FOREACH(fle, flist, f_next) {
- KASSERT(fle->f_hash == hash, ("%s: wrong hash", __func__));
+ KASSERT(fle->f_hash % ft->ft_size == hash % ft->ft_size,
+ ("%s: wrong hash", __func__));
if (flow_matches(fle, key, keylen, fibnum)) {
fle->f_uptime = time_uptime;
#ifdef FLOWTABLE_HASH_ALL
OpenPOWER on IntegriCloud