Files
OpenCellular/core/cortex-m/timer.c
Randall Spangler 108754005d Fix potential deadlock in udelay()
If interrupts are disabled and the deadline is across a 32-bit timer
boundary from the current time, udelay() can lock up.  The fix is to
do 32-bit math directly in udelay().

BUG=chrome-os-partner:16472
BRANCH=link
TEST=manual

waitms 1 -> prompt returns almost instantly
waitms 500 -> prompt returns after 0.5 sec
waitms 1000 -> watchdog error printed, then prompt returns
waitms 2000 -> watchdog reboot

Change-Id: Ib8ca06cee414d48900c0142e629daa68aa0993c9
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/38924
Reviewed-by: Yung-Chieh Lo <yjlou@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2012-11-29 12:02:28 -08:00

6.1 KiB