diff options
author | Randall Spangler <rspangler@chromium.org> | 2012-11-29 10:44:30 -0800 |
---|---|---|
committer | Randall Spangler <rspangler@chromium.org> | 2012-11-29 12:02:28 -0800 |
commit | 108754005d86c17b6247e83e2b7aed788d93a8c9 (patch) | |
tree | 6e5cf48463077b9d83b29e8c50607d02e30b1e17 /board/spring | |
parent | 8722b5b142bb2dcbd7e0aa14c867eb17b9aeb850 (diff) | |
download | chrome-ec-108754005d86c17b6247e83e2b7aed788d93a8c9.tar.gz |
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>
Diffstat (limited to 'board/spring')
0 files changed, 0 insertions, 0 deletions