[ARM] 4149/1: AT91: Overrun in SAM9 gettimeoffset().
Fix an overrun in the AT91SAM9 gettimeoffset() function. This causes the time value returned by gettimeofday() to jump "backwards". Original patch from Michel Benoit. Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
127a7ec69c
commit
3392b309db
@@ -30,7 +30,6 @@
|
|||||||
* Returns number of microseconds since last timer interrupt. Note that interrupts
|
* Returns number of microseconds since last timer interrupt. Note that interrupts
|
||||||
* will have been disabled by do_gettimeofday()
|
* will have been disabled by do_gettimeofday()
|
||||||
* 'LATCH' is hwclock ticks (see CLOCK_TICK_RATE in timex.h) per jiffy.
|
* 'LATCH' is hwclock ticks (see CLOCK_TICK_RATE in timex.h) per jiffy.
|
||||||
* 'tick' is usecs per jiffy (linux/timex.h).
|
|
||||||
*/
|
*/
|
||||||
static unsigned long at91sam926x_gettimeoffset(void)
|
static unsigned long at91sam926x_gettimeoffset(void)
|
||||||
{
|
{
|
||||||
@@ -39,7 +38,7 @@ static unsigned long at91sam926x_gettimeoffset(void)
|
|||||||
|
|
||||||
elapsed = (PIT_PICNT(t) * LATCH) + PIT_CPIV(t); /* hardware clock cycles */
|
elapsed = (PIT_PICNT(t) * LATCH) + PIT_CPIV(t); /* hardware clock cycles */
|
||||||
|
|
||||||
return (unsigned long)(elapsed * 1000000) / LATCH;
|
return (unsigned long)(elapsed * jiffies_to_usecs(1)) / LATCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user