diff options
Diffstat (limited to 'net/batman-adv/originator.c')
-rw-r--r-- | net/batman-adv/originator.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c index 1980696a7fd7..f04f591f4668 100644 --- a/net/batman-adv/originator.c +++ b/net/batman-adv/originator.c | |||
@@ -194,6 +194,7 @@ struct orig_node *batadv_get_orig_node(struct bat_priv *bat_priv, | |||
194 | struct orig_node *orig_node; | 194 | struct orig_node *orig_node; |
195 | int size; | 195 | int size; |
196 | int hash_added; | 196 | int hash_added; |
197 | unsigned long reset_time; | ||
197 | 198 | ||
198 | orig_node = batadv_orig_hash_find(bat_priv, addr); | 199 | orig_node = batadv_orig_hash_find(bat_priv, addr); |
199 | if (orig_node) | 200 | if (orig_node) |
@@ -226,14 +227,13 @@ struct orig_node *batadv_get_orig_node(struct bat_priv *bat_priv, | |||
226 | orig_node->tt_buff = NULL; | 227 | orig_node->tt_buff = NULL; |
227 | orig_node->tt_buff_len = 0; | 228 | orig_node->tt_buff_len = 0; |
228 | atomic_set(&orig_node->tt_size, 0); | 229 | atomic_set(&orig_node->tt_size, 0); |
229 | orig_node->bcast_seqno_reset = jiffies - 1 | 230 | reset_time = jiffies - 1 - msecs_to_jiffies(BATADV_RESET_PROTECTION_MS); |
230 | - msecs_to_jiffies(RESET_PROTECTION_MS); | 231 | orig_node->bcast_seqno_reset = reset_time; |
231 | orig_node->batman_seqno_reset = jiffies - 1 | 232 | orig_node->batman_seqno_reset = reset_time; |
232 | - msecs_to_jiffies(RESET_PROTECTION_MS); | ||
233 | 233 | ||
234 | atomic_set(&orig_node->bond_candidates, 0); | 234 | atomic_set(&orig_node->bond_candidates, 0); |
235 | 235 | ||
236 | size = bat_priv->num_ifaces * sizeof(unsigned long) * NUM_WORDS; | 236 | size = bat_priv->num_ifaces * sizeof(unsigned long) * BATADV_NUM_WORDS; |
237 | 237 | ||
238 | orig_node->bcast_own = kzalloc(size, GFP_ATOMIC); | 238 | orig_node->bcast_own = kzalloc(size, GFP_ATOMIC); |
239 | if (!orig_node->bcast_own) | 239 | if (!orig_node->bcast_own) |
@@ -285,7 +285,7 @@ static bool batadv_purge_orig_neighbors(struct bat_priv *bat_priv, | |||
285 | last_seen = neigh_node->last_seen; | 285 | last_seen = neigh_node->last_seen; |
286 | if_incoming = neigh_node->if_incoming; | 286 | if_incoming = neigh_node->if_incoming; |
287 | 287 | ||
288 | if ((batadv_has_timed_out(last_seen, PURGE_TIMEOUT)) || | 288 | if ((batadv_has_timed_out(last_seen, BATADV_PURGE_TIMEOUT)) || |
289 | (if_incoming->if_status == IF_INACTIVE) || | 289 | (if_incoming->if_status == IF_INACTIVE) || |
290 | (if_incoming->if_status == IF_NOT_IN_USE) || | 290 | (if_incoming->if_status == IF_NOT_IN_USE) || |
291 | (if_incoming->if_status == IF_TO_BE_REMOVED)) { | 291 | (if_incoming->if_status == IF_TO_BE_REMOVED)) { |
@@ -324,7 +324,8 @@ static bool batadv_purge_orig_node(struct bat_priv *bat_priv, | |||
324 | { | 324 | { |
325 | struct neigh_node *best_neigh_node; | 325 | struct neigh_node *best_neigh_node; |
326 | 326 | ||
327 | if (batadv_has_timed_out(orig_node->last_seen, 2 * PURGE_TIMEOUT)) { | 327 | if (batadv_has_timed_out(orig_node->last_seen, |
328 | 2 * BATADV_PURGE_TIMEOUT)) { | ||
328 | batadv_dbg(DBG_BATMAN, bat_priv, | 329 | batadv_dbg(DBG_BATMAN, bat_priv, |
329 | "Originator timeout: originator %pM, last_seen %u\n", | 330 | "Originator timeout: originator %pM, last_seen %u\n", |
330 | orig_node->orig, | 331 | orig_node->orig, |
@@ -429,11 +430,11 @@ int batadv_orig_seq_print_text(struct seq_file *seq, void *offset) | |||
429 | } | 430 | } |
430 | 431 | ||
431 | seq_printf(seq, "[B.A.T.M.A.N. adv %s, MainIF/MAC: %s/%pM (%s)]\n", | 432 | seq_printf(seq, "[B.A.T.M.A.N. adv %s, MainIF/MAC: %s/%pM (%s)]\n", |
432 | SOURCE_VERSION, primary_if->net_dev->name, | 433 | BATADV_SOURCE_VERSION, primary_if->net_dev->name, |
433 | primary_if->net_dev->dev_addr, net_dev->name); | 434 | primary_if->net_dev->dev_addr, net_dev->name); |
434 | seq_printf(seq, " %-15s %s (%s/%i) %17s [%10s]: %20s ...\n", | 435 | seq_printf(seq, " %-15s %s (%s/%i) %17s [%10s]: %20s ...\n", |
435 | "Originator", "last-seen", "#", TQ_MAX_VALUE, "Nexthop", | 436 | "Originator", "last-seen", "#", BATADV_TQ_MAX_VALUE, |
436 | "outgoingIF", "Potential nexthops"); | 437 | "Nexthop", "outgoingIF", "Potential nexthops"); |
437 | 438 | ||
438 | for (i = 0; i < hash->size; i++) { | 439 | for (i = 0; i < hash->size; i++) { |
439 | head = &hash->table[i]; | 440 | head = &hash->table[i]; |
@@ -486,14 +487,15 @@ out: | |||
486 | static int batadv_orig_node_add_if(struct orig_node *orig_node, int max_if_num) | 487 | static int batadv_orig_node_add_if(struct orig_node *orig_node, int max_if_num) |
487 | { | 488 | { |
488 | void *data_ptr; | 489 | void *data_ptr; |
490 | size_t data_size, old_size; | ||
489 | 491 | ||
490 | data_ptr = kmalloc(max_if_num * sizeof(unsigned long) * NUM_WORDS, | 492 | data_size = max_if_num * sizeof(unsigned long) * BATADV_NUM_WORDS; |
491 | GFP_ATOMIC); | 493 | old_size = (max_if_num - 1) * sizeof(unsigned long) * BATADV_NUM_WORDS; |
494 | data_ptr = kmalloc(data_size, GFP_ATOMIC); | ||
492 | if (!data_ptr) | 495 | if (!data_ptr) |
493 | return -ENOMEM; | 496 | return -ENOMEM; |
494 | 497 | ||
495 | memcpy(data_ptr, orig_node->bcast_own, | 498 | memcpy(data_ptr, orig_node->bcast_own, old_size); |
496 | (max_if_num - 1) * sizeof(unsigned long) * NUM_WORDS); | ||
497 | kfree(orig_node->bcast_own); | 499 | kfree(orig_node->bcast_own); |
498 | orig_node->bcast_own = data_ptr; | 500 | orig_node->bcast_own = data_ptr; |
499 | 501 | ||
@@ -554,7 +556,7 @@ static int batadv_orig_node_del_if(struct orig_node *orig_node, | |||
554 | if (max_if_num == 0) | 556 | if (max_if_num == 0) |
555 | goto free_bcast_own; | 557 | goto free_bcast_own; |
556 | 558 | ||
557 | chunk_size = sizeof(unsigned long) * NUM_WORDS; | 559 | chunk_size = sizeof(unsigned long) * BATADV_NUM_WORDS; |
558 | data_ptr = kmalloc(max_if_num * chunk_size, GFP_ATOMIC); | 560 | data_ptr = kmalloc(max_if_num * chunk_size, GFP_ATOMIC); |
559 | if (!data_ptr) | 561 | if (!data_ptr) |
560 | return -ENOMEM; | 562 | return -ENOMEM; |