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:
parent
b26b45845b
commit
b6be4535e3
@ -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,
|
|||||||
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",
|
||||||
|
@ -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)
|
|||||||
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 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#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;
|
||||||
|
Loading…
Reference in New Issue
Block a user