2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-26 14:14:01 +08:00

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>
This commit is contained in:
Simon Wunderlich 2010-06-26 00:28:20 +02:00 committed by Greg Kroah-Hartman
parent b26b45845b
commit b6be4535e3
5 changed files with 7 additions and 10 deletions

View File

@ -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

View File

@ -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)
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",

View File

@ -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");

View File

@ -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);

View File

@ -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;