batman-adv: Fixes rounding issues in vis.c
Commit Message
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
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
===================================================================
@@ -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);
}