diff --git a/arch/s390/include/asm/irq.h b/arch/s390/include/asm/irq.h index f65faf63ab3afcec20d1787a4daeb070957d9be9..28cfe5905a003f20b7c98f12f3689b2668051988 100644 --- a/arch/s390/include/asm/irq.h +++ b/arch/s390/include/asm/irq.h @@ -15,6 +15,8 @@ enum interruption_class { EXTINT_VRT, EXTINT_SCP, EXTINT_IUC, + IOINT_QAI, + IOINT_QDI, NMI_NMI, NR_IRQS, }; diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c index 9bd049b8f99714ff84d7e9eda0d87f74101d395d..61d8098aa0b611adaaac107824cfce5060d72b66 100644 --- a/arch/s390/kernel/irq.c +++ b/arch/s390/kernel/irq.c @@ -32,6 +32,8 @@ static const struct irq_class intrclass_names[] = { {.name = "VRT", .desc = "[EXT] Virtio" }, {.name = "SCP", .desc = "[EXT] Service Call" }, {.name = "IUC", .desc = "[EXT] IUCV" }, + {.name = "QAI", .desc = "[I/O] QDIO Adapter Interrupt" }, + {.name = "QDI", .desc = "[I/O] QDIO Interrupt" }, {.name = "NMI", .desc = "[NMI] Machine Check" }, }; diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 5fcfa7f9e9ef7d4530e94ec79d2328d6349e95d9..194ea8c182b23fae6f449c8c666d89da6e5e25cd 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -970,6 +971,7 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm, return; } + kstat_cpu(smp_processor_id()).irqs[IOINT_QDI]++; if (irq_ptr->perf_stat_enabled) irq_ptr->perf_stat.qdio_int++; diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c index 5d9c66627b6eb7554b63bda327ce62ace37bc590..64b59a58a1cd8472f56faf355f090d1307a74d7c 100644 --- a/drivers/s390/cio/qdio_thinint.c +++ b/drivers/s390/cio/qdio_thinint.c @@ -8,6 +8,7 @@ */ #include #include +#include #include #include #include @@ -127,6 +128,7 @@ static void tiqdio_thinint_handler(void *alsi, void *data) struct qdio_q *q; last_ai_time = S390_lowcore.int_clock; + kstat_cpu(smp_processor_id()).irqs[IOINT_QAI]++; /* * SVS only when needed: issue SVS to benefit from iqdio interrupt