avr32: Fix theoretical race in udelay()
authorHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
Mon, 26 May 2008 10:19:10 +0000 (12:19 +0200)
committerHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
Tue, 27 May 2008 13:27:31 +0000 (15:27 +0200)
commita8092c021d27f27f4b323b7d49979ca01b3fc19d
tree6abca9359bef605709b18b85ecde8d0d0dc1cb97
parent48ea623eae8674793372e3e7c95e72e5a44d7a95
avr32: Fix theoretical race in udelay()

If the specified delay is very short, the cycle counter may go past the
"end" time we are waiting for before we get around to reading it.

Fix it by checking the different between the cycle count "now" and the
cycle count at the beginning. This will work as long as the delay
measured in number of cycles is below 2^31.

Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
cpu/at32ap/interrupts.c