]> git.baikalelectronics.ru Git - kernel.git/commit
m68knommu: fix broken ColdFire slice timer read_clk() code
authorGreg Ungerer <gerg@uclinux.org>
Wed, 16 Nov 2011 05:09:02 +0000 (15:09 +1000)
committerGreg Ungerer <gerg@uclinux.org>
Sat, 24 Dec 2011 11:47:58 +0000 (21:47 +1000)
commitb6b3443d4158b9c7853d89a15b2c3ad2d2b22213
tree78f44c9a87f8664fcdf1569be87a89efe0bfe9ea
parent78efe309f1351e4cb41e2b021b85df2194775802
m68knommu: fix broken ColdFire slice timer read_clk() code

There is a race on reading the ColdFire slice timer current count and the
total clock count so far. Interrupts are off, and we may have just missed
getting a new timer wrap event interrupt. Check for this and adjust the
cycle count and current read count accordingly.

Also the slice timer counts down from the terminal count. So in read_clk()
we need take the current clock count away from the terminal count.

Reported-by: Alexander Stein <alexander.stein@systec-electronic.com>
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
arch/m68k/platform/coldfire/sltimers.c