提交 b6be4535 编写于 作者: S Simon Wunderlich 提交者: Greg Kroah-Hartman

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: NSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: NSven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 b26b4584
...@@ -36,10 +36,10 @@ ...@@ -36,10 +36,10 @@
#define JITTER 20 #define JITTER 20
#define TTL 50 /* Time To Live of broadcast messages */ #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 * valid packet comes in -> TODO: check
* influence on TQ_LOCAL_WINDOW_SIZE */ * 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 #define TQ_LOCAL_WINDOW_SIZE 64 /* sliding packet range of received originator
* messages in squence numbers (should be a * messages in squence numbers (should be a
......
...@@ -193,8 +193,7 @@ static bool purge_orig_neighbors(struct orig_node *orig_node, ...@@ -193,8 +193,7 @@ static bool purge_orig_neighbors(struct orig_node *orig_node,
neigh_node = list_entry(list_pos, struct neigh_node, list); neigh_node = list_entry(list_pos, struct neigh_node, list);
if ((time_after(jiffies, if ((time_after(jiffies,
(neigh_node->last_valid + neigh_node->last_valid + PURGE_TIMEOUT * HZ)) ||
((PURGE_TIMEOUT * HZ) / 1000)))) ||
(neigh_node->if_incoming->if_status == (neigh_node->if_incoming->if_status ==
IF_TO_BE_REMOVED)) { IF_TO_BE_REMOVED)) {
...@@ -231,8 +230,7 @@ static bool purge_orig_node(struct orig_node *orig_node) ...@@ -231,8 +230,7 @@ static bool purge_orig_node(struct orig_node *orig_node)
struct neigh_node *best_neigh_node; struct neigh_node *best_neigh_node;
if (time_after(jiffies, if (time_after(jiffies,
(orig_node->last_valid + orig_node->last_valid + 2 * PURGE_TIMEOUT * HZ)) {
((2 * PURGE_TIMEOUT * HZ) / 1000)))) {
bat_dbg(DBG_BATMAN, bat_dbg(DBG_BATMAN,
"Originator timeout: originator %pM, last_valid %lu\n", "Originator timeout: originator %pM, last_valid %lu\n",
......
...@@ -257,8 +257,7 @@ static void hna_local_purge(struct work_struct *work) ...@@ -257,8 +257,7 @@ static void hna_local_purge(struct work_struct *work)
while (hash_iterate(hna_local_hash, &hashit)) { while (hash_iterate(hna_local_hash, &hashit)) {
hna_local_entry = hashit.bucket->data; hna_local_entry = hashit.bucket->data;
timeout = hna_local_entry->last_seen + timeout = hna_local_entry->last_seen + LOCAL_HNA_TIMEOUT * HZ;
((LOCAL_HNA_TIMEOUT * HZ) / 1000);
if ((!hna_local_entry->never_purge) && if ((!hna_local_entry->never_purge) &&
time_after(jiffies, timeout)) time_after(jiffies, timeout))
hna_local_del(hna_local_entry, "address timed out"); hna_local_del(hna_local_entry, "address timed out");
......
...@@ -597,7 +597,7 @@ static void purge_vis_packets(void) ...@@ -597,7 +597,7 @@ static void purge_vis_packets(void)
if (info == my_vis_info) /* never purge own data. */ if (info == my_vis_info) /* never purge own data. */
continue; continue;
if (time_after(jiffies, if (time_after(jiffies,
info->first_seen + (VIS_TIMEOUT*HZ)/1000)) { info->first_seen + VIS_TIMEOUT * HZ)) {
hash_remove_bucket(vis_hash, &hashit); hash_remove_bucket(vis_hash, &hashit);
send_list_del(info); send_list_del(info);
kref_put(&info->refcount, free_info); kref_put(&info->refcount, free_info);
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
* *
*/ */
#define VIS_TIMEOUT 200000 #define VIS_TIMEOUT 200 /* timeout of vis packets in seconds */
struct vis_info { struct vis_info {
unsigned long first_seen; unsigned long first_seen;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册