diff options
| -rw-r--r-- | arch/s390/include/asm/irq.h | 5 | ||||
| -rw-r--r-- | arch/s390/kernel/irq.c | 10 | ||||
| -rw-r--r-- | arch/s390/kernel/perf_cpum_cf.c | 6 | ||||
| -rw-r--r-- | arch/s390/kernel/perf_cpum_sf.c | 6 | ||||
| -rw-r--r-- | arch/s390/kernel/runtime_instr.c | 3 | ||||
| -rw-r--r-- | arch/s390/kernel/sclp.S | 5 | ||||
| -rw-r--r-- | arch/s390/kernel/smp.c | 4 | ||||
| -rw-r--r-- | arch/s390/kernel/time.c | 6 | ||||
| -rw-r--r-- | arch/s390/mm/fault.c | 4 | ||||
| -rw-r--r-- | arch/s390/oprofile/hwsampler.c | 4 | ||||
| -rw-r--r-- | drivers/s390/block/dasd_diag.c | 4 | ||||
| -rw-r--r-- | drivers/s390/char/sclp.c | 6 | ||||
| -rw-r--r-- | drivers/s390/kvm/kvm_virtio.c | 2 | ||||
| -rw-r--r-- | net/iucv/iucv.c | 6 |
14 files changed, 39 insertions, 32 deletions
diff --git a/arch/s390/include/asm/irq.h b/arch/s390/include/asm/irq.h index 58c1ea639452..763ccdcb70ba 100644 --- a/arch/s390/include/asm/irq.h +++ b/arch/s390/include/asm/irq.h | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #define EXT_IRQ_TIMING_ALERT 0x1406 | 27 | #define EXT_IRQ_TIMING_ALERT 0x1406 |
| 28 | #define EXT_IRQ_MEASURE_ALERT 0x1407 | 28 | #define EXT_IRQ_MEASURE_ALERT 0x1407 |
| 29 | #define EXT_IRQ_SERVICE_SIG 0x2401 | 29 | #define EXT_IRQ_SERVICE_SIG 0x2401 |
| 30 | #define EXT_IRQ_CP_SERVICE 0x2603 | ||
| 30 | #define EXT_IRQ_IUCV 0x4000 | 31 | #define EXT_IRQ_IUCV 0x4000 |
| 31 | 32 | ||
| 32 | #ifndef __ASSEMBLY__ | 33 | #ifndef __ASSEMBLY__ |
| @@ -89,8 +90,8 @@ struct ext_code { | |||
| 89 | 90 | ||
| 90 | typedef void (*ext_int_handler_t)(struct ext_code, unsigned int, unsigned long); | 91 | typedef void (*ext_int_handler_t)(struct ext_code, unsigned int, unsigned long); |
| 91 | 92 | ||
| 92 | int register_external_interrupt(u16 code, ext_int_handler_t handler); | 93 | int register_external_irq(u16 code, ext_int_handler_t handler); |
| 93 | int unregister_external_interrupt(u16 code, ext_int_handler_t handler); | 94 | int unregister_external_irq(u16 code, ext_int_handler_t handler); |
| 94 | 95 | ||
| 95 | enum irq_subclass { | 96 | enum irq_subclass { |
| 96 | IRQ_SUBCLASS_MEASUREMENT_ALERT = 5, | 97 | IRQ_SUBCLASS_MEASUREMENT_ALERT = 5, |
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c index bb27a262c44a..083617d739d8 100644 --- a/arch/s390/kernel/irq.c +++ b/arch/s390/kernel/irq.c | |||
| @@ -205,7 +205,7 @@ static inline int ext_hash(u16 code) | |||
| 205 | return (code + (code >> 9)) & (ARRAY_SIZE(ext_int_hash) - 1); | 205 | return (code + (code >> 9)) & (ARRAY_SIZE(ext_int_hash) - 1); |
| 206 | } | 206 | } |
| 207 | 207 | ||
| 208 | int register_external_interrupt(u16 code, ext_int_handler_t handler) | 208 | int register_external_irq(u16 code, ext_int_handler_t handler) |
| 209 | { | 209 | { |
| 210 | struct ext_int_info *p; | 210 | struct ext_int_info *p; |
| 211 | unsigned long flags; | 211 | unsigned long flags; |
| @@ -223,9 +223,9 @@ int register_external_interrupt(u16 code, ext_int_handler_t handler) | |||
| 223 | spin_unlock_irqrestore(&ext_int_hash_lock, flags); | 223 | spin_unlock_irqrestore(&ext_int_hash_lock, flags); |
| 224 | return 0; | 224 | return 0; |
| 225 | } | 225 | } |
| 226 | EXPORT_SYMBOL(register_external_interrupt); | 226 | EXPORT_SYMBOL(register_external_irq); |
| 227 | 227 | ||
| 228 | int unregister_external_interrupt(u16 code, ext_int_handler_t handler) | 228 | int unregister_external_irq(u16 code, ext_int_handler_t handler) |
| 229 | { | 229 | { |
| 230 | struct ext_int_info *p; | 230 | struct ext_int_info *p; |
| 231 | unsigned long flags; | 231 | unsigned long flags; |
| @@ -241,7 +241,7 @@ int unregister_external_interrupt(u16 code, ext_int_handler_t handler) | |||
| 241 | spin_unlock_irqrestore(&ext_int_hash_lock, flags); | 241 | spin_unlock_irqrestore(&ext_int_hash_lock, flags); |
| 242 | return 0; | 242 | return 0; |
| 243 | } | 243 | } |
| 244 | EXPORT_SYMBOL(unregister_external_interrupt); | 244 | EXPORT_SYMBOL(unregister_external_irq); |
| 245 | 245 | ||
| 246 | static irqreturn_t do_ext_interrupt(int irq, void *dummy) | 246 | static irqreturn_t do_ext_interrupt(int irq, void *dummy) |
| 247 | { | 247 | { |
| @@ -251,7 +251,7 @@ static irqreturn_t do_ext_interrupt(int irq, void *dummy) | |||
| 251 | int index; | 251 | int index; |
| 252 | 252 | ||
| 253 | ext_code = *(struct ext_code *) ®s->int_code; | 253 | ext_code = *(struct ext_code *) ®s->int_code; |
| 254 | if (ext_code.code != 0x1004) | 254 | if (ext_code.code != EXT_IRQ_CLK_COMP) |
| 255 | __get_cpu_var(s390_idle).nohz_delay = 1; | 255 | __get_cpu_var(s390_idle).nohz_delay = 1; |
| 256 | 256 | ||
| 257 | index = ext_hash(ext_code.code); | 257 | index = ext_hash(ext_code.code); |
diff --git a/arch/s390/kernel/perf_cpum_cf.c b/arch/s390/kernel/perf_cpum_cf.c index f51214c04858..ea75d011a6fc 100644 --- a/arch/s390/kernel/perf_cpum_cf.c +++ b/arch/s390/kernel/perf_cpum_cf.c | |||
| @@ -673,7 +673,8 @@ static int __init cpumf_pmu_init(void) | |||
| 673 | ctl_clear_bit(0, 48); | 673 | ctl_clear_bit(0, 48); |
| 674 | 674 | ||
| 675 | /* register handler for measurement-alert interruptions */ | 675 | /* register handler for measurement-alert interruptions */ |
| 676 | rc = register_external_interrupt(0x1407, cpumf_measurement_alert); | 676 | rc = register_external_irq(EXT_IRQ_MEASURE_ALERT, |
| 677 | cpumf_measurement_alert); | ||
| 677 | if (rc) { | 678 | if (rc) { |
| 678 | pr_err("Registering for CPU-measurement alerts " | 679 | pr_err("Registering for CPU-measurement alerts " |
| 679 | "failed with rc=%i\n", rc); | 680 | "failed with rc=%i\n", rc); |
| @@ -684,7 +685,8 @@ static int __init cpumf_pmu_init(void) | |||
| 684 | rc = perf_pmu_register(&cpumf_pmu, "cpum_cf", PERF_TYPE_RAW); | 685 | rc = perf_pmu_register(&cpumf_pmu, "cpum_cf", PERF_TYPE_RAW); |
| 685 | if (rc) { | 686 | if (rc) { |
| 686 | pr_err("Registering the cpum_cf PMU failed with rc=%i\n", rc); | 687 | pr_err("Registering the cpum_cf PMU failed with rc=%i\n", rc); |
| 687 | unregister_external_interrupt(0x1407, cpumf_measurement_alert); | 688 | unregister_external_irq(EXT_IRQ_MEASURE_ALERT, |
| 689 | cpumf_measurement_alert); | ||
| 688 | goto out; | 690 | goto out; |
| 689 | } | 691 | } |
| 690 | perf_cpu_notifier(cpumf_pmu_notifier); | 692 | perf_cpu_notifier(cpumf_pmu_notifier); |
diff --git a/arch/s390/kernel/perf_cpum_sf.c b/arch/s390/kernel/perf_cpum_sf.c index 6c0d29827cb6..ea0c7b2ef030 100644 --- a/arch/s390/kernel/perf_cpum_sf.c +++ b/arch/s390/kernel/perf_cpum_sf.c | |||
| @@ -1621,7 +1621,8 @@ static int __init init_cpum_sampling_pmu(void) | |||
| 1621 | pr_err("Registering for s390dbf failed\n"); | 1621 | pr_err("Registering for s390dbf failed\n"); |
| 1622 | debug_register_view(sfdbg, &debug_sprintf_view); | 1622 | debug_register_view(sfdbg, &debug_sprintf_view); |
| 1623 | 1623 | ||
| 1624 | err = register_external_interrupt(0x1407, cpumf_measurement_alert); | 1624 | err = register_external_irq(EXT_IRQ_MEASURE_ALERT, |
| 1625 | cpumf_measurement_alert); | ||
| 1625 | if (err) { | 1626 | if (err) { |
| 1626 | pr_cpumsf_err(RS_INIT_FAILURE_ALRT); | 1627 | pr_cpumsf_err(RS_INIT_FAILURE_ALRT); |
| 1627 | goto out; | 1628 | goto out; |
| @@ -1630,7 +1631,8 @@ static int __init init_cpum_sampling_pmu(void) | |||
| 1630 | err = perf_pmu_register(&cpumf_sampling, "cpum_sf", PERF_TYPE_RAW); | 1631 | err = perf_pmu_register(&cpumf_sampling, "cpum_sf", PERF_TYPE_RAW); |
| 1631 | if (err) { | 1632 | if (err) { |
| 1632 | pr_cpumsf_err(RS_INIT_FAILURE_PERF); | 1633 | pr_cpumsf_err(RS_INIT_FAILURE_PERF); |
| 1633 | unregister_external_interrupt(0x1407, cpumf_measurement_alert); | 1634 | unregister_external_irq(EXT_IRQ_MEASURE_ALERT, |
| 1635 | cpumf_measurement_alert); | ||
| 1634 | goto out; | 1636 | goto out; |
| 1635 | } | 1637 | } |
| 1636 | perf_cpu_notifier(cpumf_pmu_notifier); | 1638 | perf_cpu_notifier(cpumf_pmu_notifier); |
diff --git a/arch/s390/kernel/runtime_instr.c b/arch/s390/kernel/runtime_instr.c index d817cce7e72d..26b4ae96fdd7 100644 --- a/arch/s390/kernel/runtime_instr.c +++ b/arch/s390/kernel/runtime_instr.c | |||
| @@ -138,7 +138,8 @@ static int __init runtime_instr_init(void) | |||
| 138 | return 0; | 138 | return 0; |
| 139 | 139 | ||
| 140 | irq_subclass_register(IRQ_SUBCLASS_MEASUREMENT_ALERT); | 140 | irq_subclass_register(IRQ_SUBCLASS_MEASUREMENT_ALERT); |
| 141 | rc = register_external_interrupt(0x1407, runtime_instr_int_handler); | 141 | rc = register_external_irq(EXT_IRQ_MEASURE_ALERT, |
| 142 | runtime_instr_int_handler); | ||
| 142 | if (rc) | 143 | if (rc) |
| 143 | irq_subclass_unregister(IRQ_SUBCLASS_MEASUREMENT_ALERT); | 144 | irq_subclass_unregister(IRQ_SUBCLASS_MEASUREMENT_ALERT); |
| 144 | else | 145 | else |
diff --git a/arch/s390/kernel/sclp.S b/arch/s390/kernel/sclp.S index 29bd7bec4176..a41f2c99dcc8 100644 --- a/arch/s390/kernel/sclp.S +++ b/arch/s390/kernel/sclp.S | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | #include <linux/linkage.h> | 11 | #include <linux/linkage.h> |
| 12 | #include <asm/irq.h> | ||
| 12 | 13 | ||
| 13 | LC_EXT_NEW_PSW = 0x58 # addr of ext int handler | 14 | LC_EXT_NEW_PSW = 0x58 # addr of ext int handler |
| 14 | LC_EXT_NEW_PSW_64 = 0x1b0 # addr of ext int handler 64 bit | 15 | LC_EXT_NEW_PSW_64 = 0x1b0 # addr of ext int handler 64 bit |
| @@ -73,9 +74,9 @@ _sclp_wait_int: | |||
| 73 | lpsw .LwaitpswS1-.LbaseS1(%r13) # wait until interrupt | 74 | lpsw .LwaitpswS1-.LbaseS1(%r13) # wait until interrupt |
| 74 | .LwaitS1: | 75 | .LwaitS1: |
| 75 | lh %r7,LC_EXT_INT_CODE | 76 | lh %r7,LC_EXT_INT_CODE |
| 76 | chi %r7,0x1004 # timeout? | 77 | chi %r7,EXT_IRQ_CLK_COMP # timeout? |
| 77 | je .LtimeoutS1 | 78 | je .LtimeoutS1 |
| 78 | chi %r7,0x2401 # service int? | 79 | chi %r7,EXT_IRQ_SERVICE_SIG # service int? |
| 79 | jne .LloopS1 | 80 | jne .LloopS1 |
| 80 | sr %r2,%r2 | 81 | sr %r2,%r2 |
| 81 | l %r3,LC_EXT_INT_PARAM | 82 | l %r3,LC_EXT_INT_PARAM |
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 8827883310dd..366d14460c2b 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
| @@ -785,10 +785,10 @@ void __init smp_fill_possible_mask(void) | |||
| 785 | void __init smp_prepare_cpus(unsigned int max_cpus) | 785 | void __init smp_prepare_cpus(unsigned int max_cpus) |
| 786 | { | ||
