diff options
Diffstat (limited to 'arch/s390/kernel/time.c')
-rw-r--r-- | arch/s390/kernel/time.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index 215330a2c128..d4c8e9c47c81 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #include <linux/notifier.h> | 36 | #include <linux/notifier.h> |
37 | #include <linux/clocksource.h> | 37 | #include <linux/clocksource.h> |
38 | #include <linux/clockchips.h> | 38 | #include <linux/clockchips.h> |
39 | #include <linux/bootmem.h> | ||
40 | #include <asm/uaccess.h> | 39 | #include <asm/uaccess.h> |
41 | #include <asm/delay.h> | 40 | #include <asm/delay.h> |
42 | #include <asm/s390_ext.h> | 41 | #include <asm/s390_ext.h> |
@@ -62,9 +61,6 @@ | |||
62 | 61 | ||
63 | u64 sched_clock_base_cc = -1; /* Force to data section. */ | 62 | u64 sched_clock_base_cc = -1; /* Force to data section. */ |
64 | 63 | ||
65 | static ext_int_info_t ext_int_info_cc; | ||
66 | static ext_int_info_t ext_int_etr_cc; | ||
67 | |||
68 | static DEFINE_PER_CPU(struct clock_event_device, comparators); | 64 | static DEFINE_PER_CPU(struct clock_event_device, comparators); |
69 | 65 | ||
70 | /* | 66 | /* |
@@ -255,15 +251,11 @@ void __init time_init(void) | |||
255 | stp_reset(); | 251 | stp_reset(); |
256 | 252 | ||
257 | /* request the clock comparator external interrupt */ | 253 | /* request the clock comparator external interrupt */ |
258 | if (register_early_external_interrupt(0x1004, | 254 | if (register_external_interrupt(0x1004, clock_comparator_interrupt)) |
259 | clock_comparator_interrupt, | ||
260 | &ext_int_info_cc) != 0) | ||
261 | panic("Couldn't request external interrupt 0x1004"); | 255 | panic("Couldn't request external interrupt 0x1004"); |
262 | 256 | ||
263 | /* request the timing alert external interrupt */ | 257 | /* request the timing alert external interrupt */ |
264 | if (register_early_external_interrupt(0x1406, | 258 | if (register_external_interrupt(0x1406, timing_alert_interrupt)) |
265 | timing_alert_interrupt, | ||
266 | &ext_int_etr_cc) != 0) | ||
267 | panic("Couldn't request external interrupt 0x1406"); | 259 | panic("Couldn't request external interrupt 0x1406"); |
268 | 260 | ||
269 | if (clocksource_register(&clocksource_tod) != 0) | 261 | if (clocksource_register(&clocksource_tod) != 0) |
@@ -1445,14 +1437,14 @@ static void __init stp_reset(void) | |||
1445 | { | 1437 | { |
1446 | int rc; | 1438 | int rc; |
1447 | 1439 | ||
1448 | stp_page = alloc_bootmem_pages(PAGE_SIZE); | 1440 | stp_page = (void *) get_zeroed_page(GFP_ATOMIC); |
1449 | rc = chsc_sstpc(stp_page, STP_OP_CTRL, 0x0000); | 1441 | rc = chsc_sstpc(stp_page, STP_OP_CTRL, 0x0000); |
1450 | if (rc == 0) | 1442 | if (rc == 0) |
1451 | set_bit(CLOCK_SYNC_HAS_STP, &clock_sync_flags); | 1443 | set_bit(CLOCK_SYNC_HAS_STP, &clock_sync_flags); |
1452 | else if (stp_online) { | 1444 | else if (stp_online) { |
1453 | pr_warning("The real or virtual hardware system does " | 1445 | pr_warning("The real or virtual hardware system does " |
1454 | "not provide an STP interface\n"); | 1446 | "not provide an STP interface\n"); |
1455 | free_bootmem((unsigned long) stp_page, PAGE_SIZE); | 1447 | free_page((unsigned long) stp_page); |
1456 | stp_page = NULL; | 1448 | stp_page = NULL; |
1457 | stp_online = 0; | 1449 | stp_online = 0; |
1458 | } | 1450 | } |