diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2005-10-30 18:03:38 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-30 20:37:30 -0500 |
commit | af95eade68da4dfa29c5b64d79cffc9709facf00 (patch) | |
tree | 17db9f696dbdbb222d9a4a41e8d02f5378fe8d48 /drivers/char | |
parent | 8e8505be9c0ba608cbd634faa8fba361f17d2512 (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.c | 7 |
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; |