Эх сурвалжийг харах

Merge branch 'batman-adv/maint' of git://git.open-mesh.org/linux-merge

David S. Miller 13 жил өмнө
parent
commit
580043a27d

+ 6 - 1
net/batman-adv/translation-table.c

@@ -999,7 +999,6 @@ static struct sk_buff *tt_response_fill_table(uint16_t tt_len, uint8_t ttvn,
 	tt_response = (struct tt_query_packet *)skb_put(skb,
 	tt_response = (struct tt_query_packet *)skb_put(skb,
 						     tt_query_size + tt_len);
 						     tt_query_size + tt_len);
 	tt_response->ttvn = ttvn;
 	tt_response->ttvn = ttvn;
-	tt_response->tt_data = htons(tt_tot);
 
 
 	tt_change = (struct tt_change *)(skb->data + tt_query_size);
 	tt_change = (struct tt_change *)(skb->data + tt_query_size);
 	tt_count = 0;
 	tt_count = 0;
@@ -1025,6 +1024,10 @@ static struct sk_buff *tt_response_fill_table(uint16_t tt_len, uint8_t ttvn,
 	}
 	}
 	rcu_read_unlock();
 	rcu_read_unlock();
 
 
+	/* store in the message the number of entries we have successfully
+	 * copied */
+	tt_response->tt_data = htons(tt_count);
+
 out:
 out:
 	return skb;
 	return skb;
 }
 }
@@ -1668,6 +1671,8 @@ static void tt_local_reset_flags(struct bat_priv *bat_priv, uint16_t flags)
 		rcu_read_lock();
 		rcu_read_lock();
 		hlist_for_each_entry_rcu(tt_local_entry, node,
 		hlist_for_each_entry_rcu(tt_local_entry, node,
 					 head, hash_entry) {
 					 head, hash_entry) {
+			if (!(tt_local_entry->flags & flags))
+				continue;
 			tt_local_entry->flags &= ~flags;
 			tt_local_entry->flags &= ~flags;
 			atomic_inc(&bat_priv->num_local_tt);
 			atomic_inc(&bat_priv->num_local_tt);
 		}
 		}