: Relax too much careful cipso hash function.
Subsystems (3)
PATCH 1/1 : Relax too much careful cipso hash function.
The cipso_v4_cache is allocated to contain CIPSO_V4_CACHE_BUCKETS buckets. The CIPSO_V4_CACHE_BUCKETS = 1 << CIPSO_V4_CACHE_BUCKETBITS, where CIPSO_V4_CACHE_BUCKETBITS = 7.
The bucket-selection function for this hash is calculated like this:
bkt = hash & (CIPSO_V4_CACHE_BUCKETBITS - 1);
^^^i.e. picking only 4 buckets of possible 128 :)
--- net/ipv4/cipso_ipv4.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
net/ipv4/cipso_ipv4.c +2 -2
@@ -338,7 +338,7 @@ static int cipso_v4_cache_check(const unsigned char *key,return -ENOENT ; hash =cipso_v4_map_cache_hash (key, key_len); - bkt = hash & (CIPSO_V4_CACHE_BUCKETBITS -1 ); + bkt = hash & (CIPSO_V4_CACHE_BUCKETS -1 );spin_lock_bh (&cipso_v4_cache[bkt].lock);list_for_each_entry (entry, &cipso_v4_cache[bkt].list, list) { if (entry->hash == hash &&
@@ -417,7 +417,7 @@ int cipso_v4_cache_add(const struct sk_buff *skb,atomic_inc (&secattr->cache->refcount); entry->lsm_data = secattr->cache; - bkt = entry->hash & (CIPSO_V4_CACHE_BUCKETBITS -1 ); + bkt = entry->hash & (CIPSO_V4_CACHE_BUCKETS -1 );spin_lock_bh (&cipso_v4_cache[bkt].lock);if (cipso_v4_cache[bkt].size < cipso_v4_cache_bucketsize) {list_add (&entry->list, &cipso_v4_cache[bkt].list);
Quoted 4 lines · Pavel Emelyanov
The
cipso_v4_cacheis allocated to containCIPSO_V4_CACHE_BUCKETSbuckets. TheCIPSO_V4_CACHE_BUCKETS= 1 <<CIPSO_V4_CACHE_BUCKETBITS, whereCIPSO_V4_CACHE_BUCKETBITS= 7.
Quoted 8 lines
The bucket-selection function for this hash is calculated like this:
bkt = hash & (CIPSO_V4_CACHE_BUCKETBITS - 1); ^^^i.e. picking only 4 buckets of possible 128 :)
Signed-off-by Pavel Emelyanov <[email protected]>
Thanks Pavel, braino on my part.
Quoted 26 lines
--- net/ipv4/cipso_ipv4.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)net/ipv4/cipso_ipv4.c +2
-2@@ -338,7 +338,7 @@ static int cipso_v4_cache_check(const unsigned char *key, return -ENOENT; hash =cipso_v4_map_cache_hash (key, key_len); - bkt = hash & (CIPSO_V4_CACHE_BUCKETBITS -1 ); + bkt = hash & (CIPSO_V4_CACHE_BUCKETS -1 );spin_lock_bh (&cipso_v4_cache[bkt].lock);list_for_each_entry (entry, &cipso_v4_cache[bkt].list, list) { if (entry->hash == hash &&@@ -417,7 +417,7 @@ int cipso_v4_cache_add(const struct sk_buff *skb,atomic_inc (&secattr->cache->refcount); entry->lsm_data = secattr->cache; - bkt = entry->hash & (CIPSO_V4_CACHE_BUCKETBITS -1 ); + bkt = entry->hash & (CIPSO_V4_CACHE_BUCKETS -1 );spin_lock_bh (&cipso_v4_cache[bkt].lock);if (cipso_v4_cache[bkt].size < cipso_v4_cache_bucketsize) {list_add (&entry->list, &cipso_v4_cache[bkt].list);
Signature · 2 lines
paul moore linux @ hp
From: Paul Moore <[email protected]>
Date: Tue, 13 May 2008 14:34:44 -0400
Quoted 10 lines · Pavel Emelyanov
Quoted 9 lines
The
cipso_v4_cacheis allocated to containCIPSO_V4_CACHE_BUCKETSbuckets. TheCIPSO_V4_CACHE_BUCKETS= 1 <<CIPSO_V4_CACHE_BUCKETBITS, whereCIPSO_V4_CACHE_BUCKETBITS= 7.The bucket-selection function for this hash is calculated like this:
bkt = hash & (CIPSO_V4_CACHE_BUCKETBITS - 1); ^^^
Quoted 7 lines
Quoted 3 lines
i.e. picking only 4 buckets of possible 128 :)
Signed-off-by Pavel Emelyanov <[email protected]>Thanks Pavel, braino on my part.
Acked-by Paul Moore <[email protected]>
Applied, thanks everyone.