Commit b6be4535 authored by Simon Wunderlich's avatar Simon Wunderlich Committed by Greg Kroah-Hartman
Browse files

Staging: batman-adv: Lower resolution for timeouts



It is enough for our timeouts to keep them in seconds instead of miliseconds.
With a too high resolution, we might even risk an integer overflow, so this
patch should make things more safe.

Signed-off-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: default avatarSven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent b26b4584
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -36,10 +36,10 @@
#define JITTER 20
#define TTL 50			  /* Time To Live of broadcast messages */

#define PURGE_TIMEOUT 200000	  /* purge originators after time in ms if no
#define PURGE_TIMEOUT 200	/* purge originators after time in seconds if no
				   * valid packet comes in -> TODO: check
				   * influence on TQ_LOCAL_WINDOW_SIZE */
#define LOCAL_HNA_TIMEOUT 3600000
#define LOCAL_HNA_TIMEOUT 3600 /* in seconds */

#define TQ_LOCAL_WINDOW_SIZE 64	  /* sliding packet range of received originator
				   * messages in squence numbers (should be a
+2 −4
Original line number Diff line number Diff line
@@ -193,8 +193,7 @@ static bool purge_orig_neighbors(struct orig_node *orig_node,
		neigh_node = list_entry(list_pos, struct neigh_node, list);

		if ((time_after(jiffies,
			       (neigh_node->last_valid +
				((PURGE_TIMEOUT * HZ) / 1000)))) ||
			neigh_node->last_valid + PURGE_TIMEOUT * HZ)) ||
		    (neigh_node->if_incoming->if_status ==
						IF_TO_BE_REMOVED)) {

@@ -231,8 +230,7 @@ static bool purge_orig_node(struct orig_node *orig_node)
	struct neigh_node *best_neigh_node;

	if (time_after(jiffies,
		       (orig_node->last_valid +
			((2 * PURGE_TIMEOUT * HZ) / 1000)))) {
		orig_node->last_valid + 2 * PURGE_TIMEOUT * HZ)) {

		bat_dbg(DBG_BATMAN,
			"Originator timeout: originator %pM, last_valid %lu\n",
+1 −2
Original line number Diff line number Diff line
@@ -257,8 +257,7 @@ static void hna_local_purge(struct work_struct *work)
	while (hash_iterate(hna_local_hash, &hashit)) {
		hna_local_entry = hashit.bucket->data;

		timeout = hna_local_entry->last_seen +
			((LOCAL_HNA_TIMEOUT * HZ) / 1000);
		timeout = hna_local_entry->last_seen + LOCAL_HNA_TIMEOUT * HZ;
		if ((!hna_local_entry->never_purge) &&
		    time_after(jiffies, timeout))
			hna_local_del(hna_local_entry, "address timed out");
+1 −1
Original line number Diff line number Diff line
@@ -597,7 +597,7 @@ static void purge_vis_packets(void)
		if (info == my_vis_info)	/* never purge own data. */
			continue;
		if (time_after(jiffies,
			       info->first_seen + (VIS_TIMEOUT*HZ)/1000)) {
			       info->first_seen + VIS_TIMEOUT * HZ)) {
			hash_remove_bucket(vis_hash, &hashit);
			send_list_del(info);
			kref_put(&info->refcount, free_info);
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@
 *
 */

#define VIS_TIMEOUT		200000
#define VIS_TIMEOUT		200	/* timeout of vis packets in seconds */

struct vis_info {
	unsigned long       first_seen;