aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/include/asm/irq.h2
-rw-r--r--arch/s390/kernel/irq.c2
-rw-r--r--drivers/s390/cio/qdio_main.c2
-rw-r--r--drivers/s390/cio/qdio_thinint.c2
4 files changed, 8 insertions, 0 deletions
diff --git a/arch/s390/include/asm/irq.h b/arch/s390/include/asm/irq.h
index f65faf63ab3a..28cfe5905a00 100644
--- a/arch/s390/include/asm/irq.h
+++ b/arch/s390/include/asm/irq.h
@@ -15,6 +15,8 @@ enum interruption_class {
15 EXTINT_VRT, 15 EXTINT_VRT,
16 EXTINT_SCP, 16 EXTINT_SCP,
17 EXTINT_IUC, 17 EXTINT_IUC,
18 IOINT_QAI,
19 IOINT_QDI,
18 NMI_NMI, 20 NMI_NMI,
19 NR_IRQS, 21 NR_IRQS,
20}; 22};
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c
index 9bd049b8f997..61d8098aa0b6 100644
--- a/arch/s390/kernel/irq.c
+++ b/arch/s390/kernel/irq.c
@@ -32,6 +32,8 @@ static const struct irq_class intrclass_names[] = {
32 {.name = "VRT", .desc = "[EXT] Virtio" }, 32 {.name = "VRT", .desc = "[EXT] Virtio" },
33 {.name = "SCP", .desc = "[EXT] Service Call" }, 33 {.name = "SCP", .desc = "[EXT] Service Call" },
34 {.name = "IUC", .desc = "[EXT] IUCV" }, 34 {.name = "IUC", .desc = "[EXT] IUCV" },
35 {.name = "QAI", .desc = "[I/O] QDIO Adapter Interrupt" },
36 {.name = "QDI", .desc = "[I/O] QDIO Interrupt" },
35 {.name = "NMI", .desc = "[NMI] Machine Check" }, 37 {.name = "NMI", .desc = "[NMI] Machine Check" },
36}; 38};
37 39
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
index 5fcfa7f9e9ef..194ea8c182b2 100644
--- a/drivers/s390/cio/qdio_main.c
+++ b/drivers/s390/cio/qdio_main.c
@@ -14,6 +14,7 @@
14#include <linux/timer.h> 14#include <linux/timer.h>
15#include <linux/delay.h> 15#include <linux/delay.h>
16#include <linux/gfp.h> 16#include <linux/gfp.h>
17#include <linux/kernel_stat.h>
17#include <asm/atomic.h> 18#include <asm/atomic.h>
18#include <asm/debug.h> 19#include <asm/debug.h>
19#include <asm/qdio.h> 20#include <asm/qdio.h>
@@ -970,6 +971,7 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm,
970 return; 971 return;
971 } 972 }
972 973
974 kstat_cpu(smp_processor_id()).irqs[IOINT_QDI]++;
973 if (irq_ptr->perf_stat_enabled) 975 if (irq_ptr->perf_stat_enabled)
974 irq_ptr->perf_stat.qdio_int++; 976 irq_ptr->perf_stat.qdio_int++;
975 977
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c
index 5d9c66627b6e..64b59a58a1cd 100644
--- a/drivers/s390/cio/qdio_thinint.c
+++ b/drivers/s390/cio/qdio_thinint.c
@@ -8,6 +8,7 @@
8 */ 8 */
9#include <linux/io.h> 9#include <linux/io.h>
10#include <linux/slab.h> 10#include <linux/slab.h>
11#include <linux/kernel_stat.h>
11#include <asm/atomic.h> 12#include <asm/atomic.h>
12#include <asm/debug.h> 13#include <asm/debug.h>
13#include <asm/qdio.h> 14#include <asm/qdio.h>
@@ -127,6 +128,7 @@ static void tiqdio_thinint_handler(void *alsi, void *data)
127 struct qdio_q *q; 128 struct qdio_q *q;
128 129
129 last_ai_time = S390_lowcore.int_clock; 130 last_ai_time = S390_lowcore.int_clock;
131 kstat_cpu(smp_processor_id()).irqs[IOINT_QAI]++;
130 132
131 /* 133 /*
132 * SVS only when needed: issue SVS to benefit from iqdio interrupt 134 * SVS only when needed: issue SVS to benefit from iqdio interrupt