batman-adv: Fixes rounding issues in vis.c

Message ID 20091217190433.GA3960@Linus-Debian (mailing list archive)
State Accepted, archived
Headers

Commit Message

Linus Lüssing Dec. 17, 2009, 7:04 p.m. UTC
  This patches fixes two rounding issues in vis.c for sending and
purging vis packets. Before, the timers and timeouts always got
rounded down to seconds, though we want a precision in
milliseconds.
This also fixes a kernel panic that occures when lowering the
timer for sending vis packets (vis_interval) to less than 1000ms
in main.c manually.

Signed-off-by: Linus Lüssing <linus.luessing@web.de>
---
  

Comments

Marek Lindner Dec. 17, 2009, 10:24 p.m. UTC | #1
On Friday 18 December 2009 03:04:33 Linus Lüssing wrote:
> This patches fixes two rounding issues in vis.c for sending and
> purging vis packets. Before, the timers and timeouts always got
> rounded down to seconds, though we want a precision in
> milliseconds.
> This also fixes a kernel panic that occures when lowering the
> timer for sending vis packets (vis_interval) to less than 1000ms
> in main.c manually.
> 
> Signed-off-by: Linus Lüssing <linus.luessing@web.de>

Thanks - applied in revision 1506.

Regards,
Marek
  

Patch

Index: vis.c
===================================================================
--- vis.c	(revision 1505)
+++ vis.c	(working copy)
@@ -377,7 +377,7 @@ 
 		if (info == my_vis_info)	/* never purge own data. */
 			continue;
 		if (time_after(jiffies,
-			       info->first_seen + (VIS_TIMEOUT/1000)*HZ)) {
+			       info->first_seen + (VIS_TIMEOUT*HZ)/1000)) {
 			hash_remove_bucket(vis_hash, &hashit);
 			free_info(info);
 		}
@@ -556,5 +556,5 @@ 
 static void start_vis_timer(void)
 {
 	queue_delayed_work(bat_event_workqueue, &vis_timer_wq,
-			   (atomic_read(&vis_interval)/1000) * HZ);
+			   (atomic_read(&vis_interval) * HZ ) / 1000);
 }