diff options
author | Simon Wunderlich <siwu@hrz.tu-chemnitz.de> | 2010-06-25 18:28:20 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-07-08 15:17:32 -0400 |
commit | b6be4535e3e971181e19791e12c62f4938e6d2e9 (patch) | |
tree | ac5bb305d63c120b5e7db33e8dd0e7fbe18ce0a4 | |
parent | b26b45845b29d83e7537dcd16827a478f6cee346 (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.h | 4 | ||||
-rw-r--r-- | drivers/staging/batman-adv/originator.c | 6 | ||||
-rw-r--r-- | drivers/staging/batman-adv/translation-table.c | 3 | ||||
-rw-r--r-- | drivers/staging/batman-adv/vis.c | 2 | ||||
-rw-r--r-- | drivers/staging/batman-adv/vis.h | 2 |
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 | ||
24 | struct vis_info { | 24 | struct vis_info { |
25 | unsigned long first_seen; | 25 | unsigned long first_seen; |