aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Wunderlich <siwu@hrz.tu-chemnitz.de>2010-06-25 18:28:20 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2010-07-08 15:17:32 -0400
commitb6be4535e3e971181e19791e12c62f4938e6d2e9 (patch)
treeac5bb305d63c120b5e7db33e8dd0e7fbe18ce0a4
parentb26b45845b29d83e7537dcd16827a478f6cee346 (diff)
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: Simon Wunderlich <siwu@hrz.tu-chemnitz.de> Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/batman-adv/main.h4
-rw-r--r--drivers/staging/batman-adv/originator.c6
-rw-r--r--drivers/staging/batman-adv/translation-table.c3
-rw-r--r--drivers/staging/batman-adv/vis.c2
-rw-r--r--drivers/staging/batman-adv/vis.h2
5 files changed, 7 insertions, 10 deletions
diff --git a/drivers/staging/batman-adv/main.h b/drivers/staging/batman-adv/main.h
index ab4c9e73abe..49aaec56b76 100644
--- a/drivers/staging/batman-adv/main.h
+++ b/drivers/staging/batman-adv/main.h
@@ -36,10 +36,10 @@
36#define JITTER 20 36#define JITTER 20
37#define TTL 50 /* Time To Live of broadcast messages */ 37#define TTL 50 /* Time To Live of broadcast messages */
38 38
39#define PURGE_TIMEOUT 200000 /* purge originators after time in ms if no 39#define PURGE_TIMEOUT 200 /* purge originators after time in seconds if no
40 * valid packet comes in -> TODO: check 40 * valid packet comes in -> TODO: check
41 * influence on TQ_LOCAL_WINDOW_SIZE */ 41 * influence on TQ_LOCAL_WINDOW_SIZE */
42#define LOCAL_HNA_TIMEOUT 3600000 42#define LOCAL_HNA_TIMEOUT 3600 /* in seconds */
43 43
44#define TQ_LOCAL_WINDOW_SIZE 64 /* sliding packet range of received originator 44#define TQ_LOCAL_WINDOW_SIZE 64 /* sliding packet range of received originator
45 * messages in squence numbers (should be a 45 * messages in squence numbers (should be a
diff --git a/drivers/staging/batman-adv/originator.c b/drivers/staging/batman-adv/originator.c
index 195c1ee0198..26bbf2d8cc3 100644
--- a/drivers/staging/batman-adv/originator.c
+++ b/drivers/staging/batman-adv/originator.c
@@ -193,8 +193,7 @@ static bool purge_orig_neighbors(struct orig_node *orig_node,
193 neigh_node = list_entry(list_pos, struct neigh_node, list); 193 neigh_node = list_entry(list_pos, struct neigh_node, list);
194 194
195 if ((time_after(jiffies, 195 if ((time_after(jiffies,
196 (neigh_node->last_valid + 196 neigh_node->last_valid + PURGE_TIMEOUT * HZ)) ||
197 ((PURGE_TIMEOUT * HZ) / 1000)))) ||
198 (neigh_node->if_incoming->if_status == 197 (neigh_node->if_incoming->if_status ==
199 IF_TO_BE_REMOVED)) { 198 IF_TO_BE_REMOVED)) {
200 199
@@ -231,8 +230,7 @@ static bool purge_orig_node(struct orig_node *orig_node)
231 struct neigh_node *best_neigh_node; 230 struct neigh_node *best_neigh_node;
232 231
233 if (time_after(jiffies, 232 if (time_after(jiffies,
234 (orig_node->last_valid + 233 orig_node->last_valid + 2 * PURGE_TIMEOUT * HZ)) {
235 ((2 * PURGE_TIMEOUT * HZ) / 1000)))) {
236 234
237 bat_dbg(DBG_BATMAN, 235 bat_dbg(DBG_BATMAN,
238 "Originator timeout: originator %pM, last_valid %lu\n", 236 "Originator timeout: originator %pM, last_valid %lu\n",
diff --git a/drivers/staging/batman-adv/translation-table.c b/drivers/staging/batman-adv/translation-table.c
index fdd902d25c7..9e3c845e202 100644
--- a/drivers/staging/batman-adv/translation-table.c
+++ b/drivers/staging/batman-adv/translation-table.c
@@ -257,8 +257,7 @@ static void hna_local_purge(struct work_struct *work)
257 while (hash_iterate(hna_local_hash, &hashit)) { 257 while (hash_iterate(hna_local_hash, &hashit)) {
258 hna_local_entry = hashit.bucket->data; 258 hna_local_entry = hashit.bucket->data;
259 259
260 timeout = hna_local_entry->last_seen + 260 timeout = hna_local_entry->last_seen + LOCAL_HNA_TIMEOUT * HZ;
261 ((LOCAL_HNA_TIMEOUT * HZ) / 1000);
262 if ((!hna_local_entry->never_purge) && 261 if ((!hna_local_entry->never_purge) &&
263 time_after(jiffies, timeout)) 262 time_after(jiffies, timeout))
264 hna_local_del(hna_local_entry, "address timed out"); 263 hna_local_del(hna_local_entry, "address timed out");
diff --git a/drivers/staging/batman-adv/vis.c b/drivers/staging/batman-adv/vis.c
index ed2c1f9eec4..ddee0f2f6c8 100644
--- a/drivers/staging/batman-adv/vis.c
+++ b/drivers/staging/batman-adv/vis.c
@@ -597,7 +597,7 @@ static void purge_vis_packets(void)
597 if (info == my_vis_info) /* never purge own data. */ 597 if (info == my_vis_info) /* never purge own data. */
598 continue; 598 continue;
599 if (time_after(jiffies, 599 if (time_after(jiffies,
600 info->first_seen + (VIS_TIMEOUT*HZ)/1000)) { 600 info->first_seen + VIS_TIMEOUT * HZ)) {
601 hash_remove_bucket(vis_hash, &hashit); 601 hash_remove_bucket(vis_hash, &hashit);
602 send_list_del(info); 602 send_list_del(info);
603 kref_put(&info->refcount, free_info); 603 kref_put(&info->refcount, free_info);
diff --git a/drivers/staging/batman-adv/vis.h b/drivers/staging/batman-adv/vis.h
index 1cfadce5932..e152cd7a46c 100644
--- a/drivers/staging/batman-adv/vis.h
+++ b/drivers/staging/batman-adv/vis.h
@@ -19,7 +19,7 @@
19 * 19 *
20 */ 20 */
21 21
22#define VIS_TIMEOUT 200000 22#define VIS_TIMEOUT 200 /* timeout of vis packets in seconds */
23 23
24struct vis_info { 24struct vis_info {
25 unsigned long first_seen; 25 unsigned long first_seen;