[v2,1/2] batman-adv: move hash_bytes into hash.h

Message ID 1350333484-23781-1-git-send-email-siwu@hrz.tu-chemnitz.de (mailing list archive)
State Accepted, archived
Commit f64999e5d5c5b20af0f18f4ad304d3b6e2a420f2
Headers

Commit Message

Simon Wunderlich Oct. 15, 2012, 8:38 p.m. UTC
  This function will be used by other parts of batman-adv as well.

Reported-by: Marek Lindner <lindner_marek@yahoo.de>
Reported-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
---
 bridge_loop_avoidance.c |   20 ++++----------------
 hash.h                  |   18 ++++++++++++++++++
 2 files changed, 22 insertions(+), 16 deletions(-)
  

Comments

Marek Lindner Oct. 15, 2012, 9:19 p.m. UTC | #1
On Tuesday, October 16, 2012 04:38:03 Simon Wunderlich wrote:
> This function will be used by other parts of batman-adv as well.
> 
> Reported-by: Marek Lindner <lindner_marek@yahoo.de>
> Reported-by: Sven Eckelmann <sven@narfation.org>
> Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
> ---
>  bridge_loop_avoidance.c |   20 ++++----------------
>  hash.h                  |   18 ++++++++++++++++++
>  2 files changed, 22 insertions(+), 16 deletions(-)

Applied in revision f64999e.

Thanks,
Marek
  

Patch

diff --git a/bridge_loop_avoidance.c b/bridge_loop_avoidance.c
index 23a6359..758d921 100644
--- a/bridge_loop_avoidance.c
+++ b/bridge_loop_avoidance.c
@@ -37,26 +37,14 @@  static void batadv_bla_periodic_work(struct work_struct *work);
 static void batadv_bla_send_announce(struct batadv_priv *bat_priv,
 				     struct batadv_backbone_gw *backbone_gw);
 
-static inline void hash_bytes(uint32_t *hash, void *data, uint32_t size)
-{
-	const unsigned char *key = data;
-	int i;
-
-	for (i = 0; i < size; i++) {
-		*hash += key[i];
-		*hash += (*hash << 10);
-		*hash ^= (*hash >> 6);
-	}
-}
-
 /* return the index of the claim */
 static inline uint32_t batadv_choose_claim(const void *data, uint32_t size)
 {
 	struct batadv_claim *claim = (struct batadv_claim *)data;
 	uint32_t hash = 0;
 
-	hash_bytes(&hash, &claim->addr, sizeof(claim->addr));
-	hash_bytes(&hash, &claim->vid, sizeof(claim->vid));
+	batadv_hash_bytes(&hash, &claim->addr, sizeof(claim->addr));
+	batadv_hash_bytes(&hash, &claim->vid, sizeof(claim->vid));
 
 	hash += (hash << 3);
 	hash ^= (hash >> 11);
@@ -72,8 +60,8 @@  static inline uint32_t batadv_choose_backbone_gw(const void *data,
 	struct batadv_claim *claim = (struct batadv_claim *)data;
 	uint32_t hash = 0;
 
-	hash_bytes(&hash, &claim->addr, sizeof(claim->addr));
-	hash_bytes(&hash, &claim->vid, sizeof(claim->vid));
+	batadv_hash_bytes(&hash, &claim->addr, sizeof(claim->addr));
+	batadv_hash_bytes(&hash, &claim->vid, sizeof(claim->vid));
 
 	hash += (hash << 3);
 	hash ^= (hash >> 11);
diff --git a/hash.h b/hash.h
index 977de9c..f173427 100644
--- a/hash.h
+++ b/hash.h
@@ -82,6 +82,24 @@  static inline void batadv_hash_delete(struct batadv_hashtable *hash,
 }
 
 /**
+ *	batadv_hash_bytes - hash some bytes and add them to the previous hash
+ *	@hash: previous hash value
+ *	@data: data to be hashed
+ *	@size: number of bytes to be hashed
+ */
+static inline void batadv_hash_bytes(uint32_t *hash, void *data, uint32_t size)
+{
+	const unsigned char *key = data;
+	int i;
+
+	for (i = 0; i < size; i++) {
+		*hash += key[i];
+		*hash += (*hash << 10);
+		*hash ^= (*hash >> 6);
+	}
+}
+
+/**
  *	batadv_hash_add - adds data to the hashtable
  *	@hash: storage hash table
  *	@compare: callback to determine if 2 hash elements are identical