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 ---
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); }
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
b.a.t.m.a.n@lists.open-mesh.org