diff options
Diffstat (limited to 'arch/i386/kernel/hpet.c')
-rw-r--r-- | arch/i386/kernel/hpet.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/i386/kernel/hpet.c b/arch/i386/kernel/hpet.c index 17647a530b2f..45a8685bb60b 100644 --- a/arch/i386/kernel/hpet.c +++ b/arch/i386/kernel/hpet.c | |||
@@ -34,6 +34,7 @@ static int __init init_hpet_clocksource(void) | |||
34 | unsigned long hpet_period; | 34 | unsigned long hpet_period; |
35 | void __iomem* hpet_base; | 35 | void __iomem* hpet_base; |
36 | u64 tmp; | 36 | u64 tmp; |
37 | int err; | ||
37 | 38 | ||
38 | if (!is_hpet_enabled()) | 39 | if (!is_hpet_enabled()) |
39 | return -ENODEV; | 40 | return -ENODEV; |
@@ -61,7 +62,11 @@ static int __init init_hpet_clocksource(void) | |||
61 | do_div(tmp, FSEC_PER_NSEC); | 62 | do_div(tmp, FSEC_PER_NSEC); |
62 | clocksource_hpet.mult = (u32)tmp; | 63 | clocksource_hpet.mult = (u32)tmp; |
63 | 64 | ||
64 | return clocksource_register(&clocksource_hpet); | 65 | err = clocksource_register(&clocksource_hpet); |
66 | if (err) | ||
67 | iounmap(hpet_base); | ||
68 | |||
69 | return err; | ||
65 | } | 70 | } |
66 | 71 | ||
67 | module_init(init_hpet_clocksource); | 72 | module_init(init_hpet_clocksource); |