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); |
