From 940370fc86b920b51a34217a1facc3e9e97c2456 Mon Sep 17 00:00:00 2001 From: Yury Polyanskiy Date: Mon, 24 May 2010 14:33:02 -0700 Subject: [PATCH] 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-format-patch failed