aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2005-10-30 18:03:38 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-10-30 20:37:30 -0500
commitaf95eade68da4dfa29c5b64d79cffc9709facf00 (patch)
tree17db9f696dbdbb222d9a4a41e8d02f5378fe8d48 /drivers/char
parent8e8505be9c0ba608cbd634faa8fba361f17d2512 (diff)
[PATCH] hpet: fix division by zero in HPET_INFO
Fix a division by zero that happened when the HPET_INFO ioctl was called before a timer frequency had been set. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: Bob Picco <bob.picco@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/hpet.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index c85d11de5feb..bc5ee99b9c23 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -494,8 +494,11 @@ hpet_ioctl_common(struct hpet_dev *devp, int cmd, unsigned long arg, int kernel)
494 { 494 {
495 struct hpet_info info; 495 struct hpet_info info;
496 496
497 info.hi_ireqfreq = hpet_time_div(hpetp, 497 if (devp->hd_ireqfreq)
498 devp->hd_ireqfreq); 498 info.hi_ireqfreq =
499 hpet_time_div(hpetp, devp->hd_ireqfreq);
500 else
501 info.hi_ireqfreq = 0;
499 info.hi_flags = 502 info.hi_flags =
500 readq(&timer->hpet_config) & Tn_PER_INT_CAP_MASK; 503 readq(&timer->hpet_config) & Tn_PER_INT_CAP_MASK;
501 info.hi_hpet = devp->hd_hpets->hp_which; 504 info.hi_hpet = devp->hd_hpets->hp_which;