From 8a7b9322e3b974f78219c2443551db1773d9ea9c Mon Sep 17 00:00:00 2001
From: Simon Wunderlich <sw@simonwunderlich.de>
Date: Thu, 11 Jun 2015 18:44:14 +0200
Subject: [PATCH 2/2] batman-adv: DEBUG: track CRC changes

Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
---
 bridge_loop_avoidance.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/bridge_loop_avoidance.c b/bridge_loop_avoidance.c
index 07d0753..d2ab84e 100644
--- a/bridge_loop_avoidance.c
+++ b/bridge_loop_avoidance.c
@@ -222,6 +222,7 @@ batadv_bla_del_backbone_claims(struct batadv_bla_backbone_gw *backbone_gw)
 	struct hlist_node *node_tmp;
 	struct hlist_head *head;
 	struct batadv_bla_claim *claim;
+	struct batadv_priv *bat_priv;
 	int i;
 	spinlock_t *list_lock;	/* protects write access to the hash lists */
 
@@ -245,10 +246,16 @@ batadv_bla_del_backbone_claims(struct batadv_bla_backbone_gw *backbone_gw)
 		spin_unlock_bh(list_lock);
 	}
 
+	bat_priv = backbone_gw->bat_priv;
 	/* all claims gone, intialize CRC */
+	batadv_dbg(BATADV_DBG_BLA, bat_priv,
+		   "%s: initialize crc for %pM (was: %04x, change to: %04x)\n",
+		   __func__, backbone_gw->orig, backbone_gw->crc, BATADV_BLA_CRC_INIT);
+
 	spin_lock_bh(&backbone_gw->crc_lock);
 	backbone_gw->crc = BATADV_BLA_CRC_INIT;
 	spin_unlock_bh(&backbone_gw->crc_lock);
+
 }
 
 /**
@@ -607,6 +614,11 @@ static void batadv_bla_add_claim(struct batadv_priv *bat_priv,
 			   "bla_add_claim(): changing ownership for %pM, vid %d\n",
 			   mac, BATADV_PRINT_VID(vid));
 
+		batadv_dbg(BATADV_DBG_BLA, bat_priv,
+			   "%s: change crc for %pM (was: %04x, change to: %04x)\n",
+			   __func__, claim->backbone_gw->orig, claim->backbone_gw->crc,
+			   claim->backbone_gw->crc ^ crc16(0, claim->addr, ETH_ALEN));
+
 		spin_lock_bh(&claim->backbone_gw->crc_lock);
 		claim->backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN);
 		spin_unlock_bh(&claim->backbone_gw->crc_lock);
@@ -616,6 +628,11 @@ static void batadv_bla_add_claim(struct batadv_priv *bat_priv,
 	atomic_inc(&backbone_gw->refcount);
 	claim->backbone_gw = backbone_gw;
 
+	batadv_dbg(BATADV_DBG_BLA, bat_priv,
+		   "%s: change crc for %pM (was: %04x, change to: %04x)\n",
+		   __func__, backbone_gw->orig, backbone_gw->crc,
+		   backbone_gw->crc ^ crc16(0, claim->addr, ETH_ALEN));
+
 	spin_lock_bh(&backbone_gw->crc_lock);
 	backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN);
 	spin_unlock_bh(&backbone_gw->crc_lock);
@@ -646,6 +663,11 @@ static void batadv_bla_del_claim(struct batadv_priv *bat_priv,
 			   batadv_choose_claim, claim);
 	batadv_claim_free_ref(claim); /* reference from the hash is gone */
 
+	batadv_dbg(BATADV_DBG_BLA, bat_priv,
+		   "%s: change crc for %pM (was: %04x, change to: %04x)\n",
+		   __func__, claim->backbone_gw->orig, claim->backbone_gw->crc,
+		   claim->backbone_gw->crc ^ crc16(0, claim->addr, ETH_ALEN));
+
 	spin_lock_bh(&claim->backbone_gw->crc_lock);
 	claim->backbone_gw->crc ^= crc16(0, claim->addr, ETH_ALEN);
 	spin_unlock_bh(&claim->backbone_gw->crc_lock);
-- 
2.1.4

