lkml.org 
[lkml]   [2015]   [May]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] staging: panel: use schedule_timeout_interruptible()
Hi Nicholas,

On Fri, May 29, 2015 at 07:02:32PM +0200, Nicholas Mc Guire wrote:
> API consolidation with coccinelle found:
> ./drivers/staging/panel/panel.c:782:2-18:
> consolidation with schedule_timeout_*() recommended
>
> This is a 1:1 conversion with respect to schedule_timeout() to the
> schedule_timeout_interruptible() helper only - so only an API
> consolidation to improve readability. The timeout was being passed
> as (ms * HZ + 999) / 1000 but that simply looks wrong - rather than
> "manual" converting to jiffies, msecs_to_jiffies which handles all
> corner-cases correctly, was used.
>
> Patch was compile tested with x86_64_defconfig + CONFIG_STAGING=y,
> CONFIG_PARPORT=m, CONFIG_PANEL=m
>
> Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>

Acked-by: Willy Tarreau <w@1wt.eu>

> ---
> Patch is against 4.1-rc5 (localversion-next is -next-20150529)
>
> not really clear what the intent of (ms * HZ + 999) / 1000 was - this
> is HZ dependent and does not really make sense - the comment states
> "sleeps that many milliseconds" so it probably simply should be
> msecs_to_jiffies(ms) - but someone that knows the intention of this code
> needs to check this.

Oh it's very simple, we call this a bug :-)
The code was written for kernel 2.2 and by then there was no
msecs_to_jiffies(). I did a mistake with this +999, the purpose was
to round up, but it's not 999 that should have been used, but HZ-1
since the result is supposed to be in units of HZ.

Thanks for fixing this one!

Willy



\
 
 \ /
  Last update: 2015-05-30 08:21    [W:0.029 / U:2.104 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site