Messages in this thread | | | Date | Sat, 30 May 2015 08:00:33 +0200 | From | Willy Tarreau <> | Subject | Re: [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
| |