diff options
author | Andrew Victor <andrew@sanpeople.com> | 2007-02-08 05:04:19 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-02-08 09:55:29 -0500 |
commit | 3392b309dbd1f1f37454c412c2045448300cf374 (patch) | |
tree | af9ae43a49a28336617486189066d297ef8e636d /arch/arm/mach-at91 | |
parent | 127a7ec69c9ce17a5add2e3c8c2f1a2733fb88d8 (diff) |
[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>
Diffstat (limited to 'arch/arm/mach-at91')
-rw-r--r-- | arch/arm/mach-at91/at91sam926x_time.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c index 59cbbe1e8161..a4dded27fa16 100644 --- a/arch/arm/mach-at91/at91sam926x_time.c +++ b/arch/arm/mach-at91/at91sam926x_time.c | |||
@@ -30,7 +30,6 @@ | |||
30 | * Returns number of microseconds since last timer interrupt. Note that interrupts | 30 | * Returns number of microseconds since last timer interrupt. Note that interrupts |
31 | * will have been disabled by do_gettimeofday() | 31 | * will have been disabled by do_gettimeofday() |
32 | * 'LATCH' is hwclock ticks (see CLOCK_TICK_RATE in timex.h) per jiffy. | 32 | * 'LATCH' is hwclock ticks (see CLOCK_TICK_RATE in timex.h) per jiffy. |
33 | * 'tick' is usecs per jiffy (linux/timex.h). | ||
34 | */ | 33 | */ |
35 | static unsigned long at91sam926x_gettimeoffset(void) | 34 | static unsigned long at91sam926x_gettimeoffset(void) |
36 | { | 35 | { |
@@ -39,7 +38,7 @@ static unsigned long at91sam926x_gettimeoffset(void) | |||
39 | 38 | ||
40 | elapsed = (PIT_PICNT(t) * LATCH) + PIT_CPIV(t); /* hardware clock cycles */ | 39 | elapsed = (PIT_PICNT(t) * LATCH) + PIT_CPIV(t); /* hardware clock cycles */ |
41 | 40 | ||
42 | return (unsigned long)(elapsed * 1000000) / LATCH; | 41 | return (unsigned long)(elapsed * jiffies_to_usecs(1)) / LATCH; |
43 | } | 42 | } |
44 | 43 | ||
45 | /* | 44 | /* |