]> 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 02:44:42 +0000 (19:44 -0700)
commit19ab6cbbf02a7d4ca81ef44cc856ce11870e202b
tree9f94512a820d20a0c9f262057e958da397413762
parentffa4da2a25bb4ac08f710ac99827baf48a8f8d57
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