aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/include/asm/irq.h1
-rw-r--r--arch/s390/kernel/irq.c1
-rw-r--r--drivers/s390/cio/chsc_sch.c5
3 files changed, 6 insertions, 1 deletions
diff --git a/arch/s390/include/asm/irq.h b/arch/s390/include/asm/irq.h
index 1f686059f293..eadfa9fc03ba 100644
--- a/arch/s390/include/asm/irq.h
+++ b/arch/s390/include/asm/irq.h
@@ -28,6 +28,7 @@ enum interruption_class {
28 IOINT_CLW, 28 IOINT_CLW,
29 IOINT_CTC, 29 IOINT_CTC,
30 IOINT_APB, 30 IOINT_APB,
31 IOINT_CSC,
31 NMI_NMI, 32 NMI_NMI,
32 NR_IRQS, 33 NR_IRQS,
33}; 34};
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c
index d382f9db3df5..30faaef34457 100644
--- a/arch/s390/kernel/irq.c
+++ b/arch/s390/kernel/irq.c
@@ -53,6 +53,7 @@ static const struct irq_class intrclass_names[] = {
53 {.name = "CLW", .desc = "[I/O] CLAW" }, 53 {.name = "CLW", .desc = "[I/O] CLAW" },
54 {.name = "CTC", .desc = "[I/O] CTC" }, 54 {.name = "CTC", .desc = "[I/O] CTC" },
55 {.name = "APB", .desc = "[I/O] AP Bus" }, 55 {.name = "APB", .desc = "[I/O] AP Bus" },
56 {.name = "CSC", .desc = "[I/O] CHSC Subchannel" },
56 {.name = "NMI", .desc = "[NMI] Machine Check" }, 57 {.name = "NMI", .desc = "[NMI] Machine Check" },
57}; 58};
58 59
diff --git a/drivers/s390/cio/chsc_sch.c b/drivers/s390/cio/chsc_sch.c
index e950f1ad4dd1..0c87b0fc7714 100644
--- a/drivers/s390/cio/chsc_sch.c
+++ b/drivers/s390/cio/chsc_sch.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for s390 chsc subchannels 2 * Driver for s390 chsc subchannels
3 * 3 *
4 * Copyright IBM Corp. 2008, 2009 4 * Copyright IBM Corp. 2008, 2011
5 * 5 *
6 * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> 6 * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
7 * 7 *
@@ -12,6 +12,7 @@
12#include <linux/module.h> 12#include <linux/module.h>
13#include <linux/uaccess.h> 13#include <linux/uaccess.h>
14#include <linux/miscdevice.h> 14#include <linux/miscdevice.h>
15#include <linux/kernel_stat.h>
15 16
16#include <asm/compat.h> 17#include <asm/compat.h>
17#include <asm/cio.h> 18#include <asm/cio.h>
@@ -56,6 +57,8 @@ static void chsc_subchannel_irq(struct subchannel *sch)
56 57
57 CHSC_LOG(4, "irb"); 58 CHSC_LOG(4, "irb");
58 CHSC_LOG_HEX(4, irb, sizeof(*irb)); 59 CHSC_LOG_HEX(4, irb, sizeof(*irb));
60 kstat_cpu(smp_processor_id()).irqs[IOINT_CSC]++;
61
59 /* Copy irb to provided request and set done. */ 62 /* Copy irb to provided request and set done. */
60 if (!request) { 63 if (!request) {
61 CHSC_MSG(0, "Interrupt on sch 0.%x.%04x with no request\n", 64 CHSC_MSG(0, "Interrupt on sch 0.%x.%04x with no request\n",