From: Yury Polyanskiy Date: Mon, 24 May 2010 21:33:02 +0000 (-0700) Subject: hangcheck-timer: fix x86_32 bugs X-Git-Tag: v2.6.35-rc1~343 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=940370fc86b920b51a34217a1facc3e9e97c2456;p=pandora-kernel.git hangcheck-timer: fix x86_32 bugs drivers/char/hangcheck-timer.c is doubly broken. When the overflown value of TIMER_FREQ is abnormally low, it spams the syslog with KERN_CRIT messages "Hangcheck: hangcheck value past margin!" But whether it happens or not depends on HZ and lpj in a complex way. People have hit it occasionally as far as google search can tell. First, the following line overflows unsigned long: # define TIMER_FREQ (HZ*loops_per_jiffy) Second, and more importantly, loops_per_jiffy has little to do with the con= version from the the time scale of get_cycles() (aka rdtsc) to the time scale of jiffies. The attached patch resolves both of the problems. Acked-by: Joel Becker Cc: john stultz Cc: Jan Glauber Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- Reading git-diff-tree failed