s390/irq: Use defines for external interruption codes
Use the new defines for external interruption codes to get rid of "magic" numbers in the s390 source code. And while we're at it, also rename the (un-)register_external_interrupt function to something shorter so that this patch does not exceed the 80 columns all over the place. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
committed by
Martin Schwidefsky
parent
072c279029
commit
1dad093b66
@@ -205,7 +205,7 @@ static inline int ext_hash(u16 code)
|
||||
return (code + (code >> 9)) & (ARRAY_SIZE(ext_int_hash) - 1);
|
||||
}
|
||||
|
||||
int register_external_interrupt(u16 code, ext_int_handler_t handler)
|
||||
int register_external_irq(u16 code, ext_int_handler_t handler)
|
||||
{
|
||||
struct ext_int_info *p;
|
||||
unsigned long flags;
|
||||
@@ -223,9 +223,9 @@ int register_external_interrupt(u16 code, ext_int_handler_t handler)
|
||||
spin_unlock_irqrestore(&ext_int_hash_lock, flags);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(register_external_interrupt);
|
||||
EXPORT_SYMBOL(register_external_irq);
|
||||
|
||||
int unregister_external_interrupt(u16 code, ext_int_handler_t handler)
|
||||
int unregister_external_irq(u16 code, ext_int_handler_t handler)
|
||||
{
|
||||
struct ext_int_info *p;
|
||||
unsigned long flags;
|
||||
@@ -241,7 +241,7 @@ int unregister_external_interrupt(u16 code, ext_int_handler_t handler)
|
||||
spin_unlock_irqrestore(&ext_int_hash_lock, flags);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(unregister_external_interrupt);
|
||||
EXPORT_SYMBOL(unregister_external_irq);
|
||||
|
||||
static irqreturn_t do_ext_interrupt(int irq, void *dummy)
|
||||
{
|
||||
@@ -251,7 +251,7 @@ static irqreturn_t do_ext_interrupt(int irq, void *dummy)
|
||||
int index;
|
||||
|
||||
ext_code = *(struct ext_code *) ®s->int_code;
|
||||
if (ext_code.code != 0x1004)
|
||||
if (ext_code.code != EXT_IRQ_CLK_COMP)
|
||||
__get_cpu_var(s390_idle).nohz_delay = 1;
|
||||
|
||||
index = ext_hash(ext_code.code);
|
||||
|
||||
@@ -673,7 +673,8 @@ static int __init cpumf_pmu_init(void)
|
||||
ctl_clear_bit(0, 48);
|
||||
|
||||
/* register handler for measurement-alert interruptions */
|
||||
rc = register_external_interrupt(0x1407, cpumf_measurement_alert);
|
||||
rc = register_external_irq(EXT_IRQ_MEASURE_ALERT,
|
||||
cpumf_measurement_alert);
|
||||
if (rc) {
|
||||
pr_err("Registering for CPU-measurement alerts "
|
||||
"failed with rc=%i\n", rc);
|
||||
@@ -684,7 +685,8 @@ static int __init cpumf_pmu_init(void)
|
||||
rc = perf_pmu_register(&cpumf_pmu, "cpum_cf", PERF_TYPE_RAW);
|
||||
if (rc) {
|
||||
pr_err("Registering the cpum_cf PMU failed with rc=%i\n", rc);
|
||||
unregister_external_interrupt(0x1407, cpumf_measurement_alert);
|
||||
unregister_external_irq(EXT_IRQ_MEASURE_ALERT,
|
||||
cpumf_measurement_alert);
|
||||
goto out;
|
||||
}
|
||||
perf_cpu_notifier(cpumf_pmu_notifier);
|
||||
|
||||
@@ -1621,7 +1621,8 @@ static int __init init_cpum_sampling_pmu(void)
|
||||
pr_err("Registering for s390dbf failed\n");
|
||||
debug_register_view(sfdbg, &debug_sprintf_view);
|
||||
|
||||
err = register_external_interrupt(0x1407, cpumf_measurement_alert);
|
||||
err = register_external_irq(EXT_IRQ_MEASURE_ALERT,
|
||||
cpumf_measurement_alert);
|
||||
if (err) {
|
||||
pr_cpumsf_err(RS_INIT_FAILURE_ALRT);
|
||||
goto out;
|
||||
@@ -1630,7 +1631,8 @@ static int __init init_cpum_sampling_pmu(void)
|
||||
err = perf_pmu_register(&cpumf_sampling, "cpum_sf", PERF_TYPE_RAW);
|
||||
if (err) {
|
||||
pr_cpumsf_err(RS_INIT_FAILURE_PERF);
|
||||
unregister_external_interrupt(0x1407, cpumf_measurement_alert);
|
||||
unregister_external_irq(EXT_IRQ_MEASURE_ALERT,
|
||||
cpumf_measurement_alert);
|
||||
goto out;
|
||||
}
|
||||
perf_cpu_notifier(cpumf_pmu_notifier);
|
||||
|
||||
@@ -138,7 +138,8 @@ static int __init runtime_instr_init(void)
|
||||
return 0;
|
||||
|
||||
irq_subclass_register(IRQ_SUBCLASS_MEASUREMENT_ALERT);
|
||||
rc = register_external_interrupt(0x1407, runtime_instr_int_handler);
|
||||
rc = register_external_irq(EXT_IRQ_MEASURE_ALERT,
|
||||
runtime_instr_int_handler);
|
||||
if (rc)
|
||||
irq_subclass_unregister(IRQ_SUBCLASS_MEASUREMENT_ALERT);
|
||||
else
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/irq.h>
|
||||
|
||||
LC_EXT_NEW_PSW = 0x58 # addr of ext int handler
|
||||
LC_EXT_NEW_PSW_64 = 0x1b0 # addr of ext int handler 64 bit
|
||||
@@ -73,9 +74,9 @@ _sclp_wait_int:
|
||||
lpsw .LwaitpswS1-.LbaseS1(%r13) # wait until interrupt
|
||||
.LwaitS1:
|
||||
lh %r7,LC_EXT_INT_CODE
|
||||
chi %r7,0x1004 # timeout?
|
||||
chi %r7,EXT_IRQ_CLK_COMP # timeout?
|
||||
je .LtimeoutS1
|
||||
chi %r7,0x2401 # service int?
|
||||
chi %r7,EXT_IRQ_SERVICE_SIG # service int?
|
||||
jne .LloopS1
|
||||
sr %r2,%r2
|
||||
l %r3,LC_EXT_INT_PARAM
|
||||
|
||||
@@ -785,10 +785,10 @@ void __init smp_fill_possible_mask(void)
|
||||
void __init smp_prepare_cpus(unsigned int max_cpus)
|
||||
{
|
||||
/* request the 0x1201 emergency signal external interrupt */
|
||||
if (register_external_interrupt(0x1201, do_ext_call_interrupt) != 0)
|
||||
if (register_external_irq(EXT_IRQ_EMERGENCY_SIG, do_ext_call_interrupt))
|
||||
panic("Couldn't request external interrupt 0x1201");
|
||||
/* request the 0x1202 external call external interrupt */
|
||||
if (register_external_interrupt(0x1202, do_ext_call_interrupt) != 0)
|
||||
if (register_external_irq(EXT_IRQ_EXTERNAL_CALL, do_ext_call_interrupt))
|
||||
panic("Couldn't request external interrupt 0x1202");
|
||||
smp_detect_cpus();
|
||||
}
|
||||
|
||||
@@ -262,11 +262,11 @@ void __init time_init(void)
|
||||
stp_reset();
|
||||
|
||||
/* request the clock comparator external interrupt */
|
||||
if (register_external_interrupt(0x1004, clock_comparator_interrupt))
|
||||
panic("Couldn't request external interrupt 0x1004");
|
||||
if (register_external_irq(EXT_IRQ_CLK_COMP, clock_comparator_interrupt))
|
||||
panic("Couldn't request external interrupt 0x1004");
|
||||
|
||||
/* request the timing alert external interrupt */
|
||||
if (register_external_interrupt(0x1406, timing_alert_interrupt))
|
||||
if (register_external_irq(EXT_IRQ_TIMING_ALERT, timing_alert_interrupt))
|
||||
panic("Couldn't request external interrupt 0x1406");
|
||||
|
||||
if (clocksource_register(&clocksource_tod) != 0)
|
||||
|
||||
Reference in New Issue
Block a user