diff options
| -rw-r--r-- | arch/x86/kernel/hpet.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/i8259.c | 25 |
2 files changed, 16 insertions, 11 deletions
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c index a198b7c87a12..ba390d731175 100644 --- a/arch/x86/kernel/hpet.c +++ b/arch/x86/kernel/hpet.c | |||
| @@ -964,7 +964,7 @@ fs_initcall(hpet_late_init); | |||
| 964 | 964 | ||
| 965 | void hpet_disable(void) | 965 | void hpet_disable(void) |
| 966 | { | 966 | { |
| 967 | if (is_hpet_capable()) { | 967 | if (is_hpet_capable() && hpet_virt_address) { |
| 968 | unsigned int cfg = hpet_readl(HPET_CFG); | 968 | unsigned int cfg = hpet_readl(HPET_CFG); |
| 969 | 969 | ||
| 970 | if (hpet_legacy_int_enabled) { | 970 | if (hpet_legacy_int_enabled) { |
diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c index 7c9f02c130f3..cafa7c80ac95 100644 --- a/arch/x86/kernel/i8259.c +++ b/arch/x86/kernel/i8259.c | |||
| @@ -276,16 +276,6 @@ static struct sys_device device_i8259A = { | |||
| 276 | .cls = &i8259_sysdev_class, | 276 | .cls = &i8259_sysdev_class, |
| 277 | }; | 277 | }; |
| 278 | 278 | ||
| 279 | static int __init i8259A_init_sysfs(void) | ||
| 280 | { | ||
| 281 | int error = sysdev_class_register(&i8259_sysdev_class); | ||
| 282 | if (!error) | ||
| 283 | error = sysdev_register(&device_i8259A); | ||
| 284 | return error; | ||
| 285 | } | ||
| 286 | |||
| 287 | device_initcall(i8259A_init_sysfs); | ||
| 288 | |||
| 289 | static void mask_8259A(void) | 279 | static void mask_8259A(void) |
| 290 | { | 280 | { |
| 291 | unsigned long flags; | 281 | unsigned long flags; |
| @@ -407,3 +397,18 @@ struct legacy_pic default_legacy_pic = { | |||
| 407 | }; | 397 | }; |
| 408 | 398 | ||
| 409 | struct legacy_pic *legacy_pic = &default_legacy_pic; | 399 | struct legacy_pic *legacy_pic = &default_legacy_pic; |
| 400 | |||
| 401 | static int __init i8259A_init_sysfs(void) | ||
| 402 | { | ||
| 403 | int error; | ||
| 404 | |||
| 405 | if (legacy_pic != &default_legacy_pic) | ||
| 406 | return 0; | ||
| 407 | |||
| 408 | error = sysdev_class_register(&i8259_sysdev_class); | ||
| 409 | if (!error) | ||
| 410 | error = sysdev_register(&device_i8259A); | ||
| 411 | return error; | ||
| 412 | } | ||
| 413 | |||
| 414 | device_initcall(i8259A_init_sysfs); | ||
