]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
clockevents: prevent endless loop lockup
authorThomas Gleixner <tglx@linutronix.de>
Wed, 3 Sep 2008 21:37:14 +0000 (21:37 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 9 Oct 2008 03:23:04 +0000 (20:23 -0700)
commit9b4989324acb35a5ada4d52e13fd339e5da89762
tree4c9f8ff2a93a7186413a759a4efd7d05ae13d7d6
parent7f0a673a75d3f9f50a64f83055b71be67526efd7
clockevents: prevent endless loop lockup

commit 1fb9b7d29d8e85ba3196eaa7ab871bf76fc98d36 upstream

The C1E/HPET bug reports on AMDX2/RS690 systems where tracked down to a
too small value of the HPET minumum delta for programming an event.

The clockevents code needs to enforce an interrupt event on the clock event
device in some cases. The enforcement code was stupid and naive, as it just
added the minimum delta to the current time and tried to reprogram the device.
When the minimum delta is too small, then this loops forever.

Add a sanity check. Allow reprogramming to fail 3 times, then print a warning
and double the minimum delta value to make sure, that this does not happen again.
Use the same function for both tick-oneshot and tick-broadcast code.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
kernel/time/tick-broadcast.c
kernel/time/tick-internal.h
kernel/time/tick-oneshot.c