diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-07 17:50:50 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-07 17:50:50 -0500 |
commit | fb5131e1880ea1ba3ba7197cd5cc66c9c288f715 (patch) | |
tree | f0d9f25f9079727b9ead5a2b4cc85a0fea9b4668 /drivers/s390/char | |
parent | d074b104cefcb6e8ded55a53e62fed59a246f55d (diff) | |
parent | 8e1023016cf17152972b98bce6c144834a4916d5 (diff) |
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (65 commits)
[S390] prevent unneccesary loops_per_jiffy recalculation
[S390] cpuinfo: use get_online_cpus() instead of preempt_disable()
[S390] smp: remove cpu hotplug messages
[S390] mutex: enable spinning mutex on s390
[S390] mutex: Introduce arch_mutex_cpu_relax()
[S390] cio: fix ccwgroup unregistration race condition
[S390] perf: add DWARF register lookup for s390
[S390] cleanup ftrace backend functions
[S390] ptrace cleanup
[S390] smp/idle: call init_idle() before starting a new cpu
[S390] smp: delay idle task creation
[S390] dasd: Correct retry counter for terminated I/O.
[S390] dasd: Add support for raw ECKD access.
[S390] dasd: Prevent deadlock during suspend/resume.
[S390] dasd: Improve handling of stolen DASD reservation
[S390] dasd: do path verification for paths added at runtime
[S390] dasd: add High Performance FICON multitrack support
[S390] cio: reduce memory consumption of itcw structures
[S390] nmi: enable machine checks early
[S390] qeth: buffer count imbalance
...
Diffstat (limited to 'drivers/s390/char')
-rw-r--r-- | drivers/s390/char/Kconfig | 69 | ||||
-rw-r--r-- | drivers/s390/char/con3215.c | 2 | ||||
-rw-r--r-- | drivers/s390/char/raw3270.c | 2 | ||||
-rw-r--r-- | drivers/s390/char/sclp.c | 18 | ||||
-rw-r--r-- | drivers/s390/char/sclp_config.c | 1 | ||||
-rw-r--r-- | drivers/s390/char/tape_core.c | 2 | ||||
-rw-r--r-- | drivers/s390/char/vmur.c | 2 |
7 files changed, 60 insertions, 36 deletions
diff --git a/drivers/s390/char/Kconfig b/drivers/s390/char/Kconfig index 40834f18754c..dcee3c5c8954 100644 --- a/drivers/s390/char/Kconfig +++ b/drivers/s390/char/Kconfig | |||
@@ -2,76 +2,85 @@ comment "S/390 character device drivers" | |||
2 | depends on S390 | 2 | depends on S390 |
3 | 3 | ||
4 | config TN3270 | 4 | config TN3270 |
5 | tristate "Support for locally attached 3270 terminals" | 5 | def_tristate y |
6 | prompt "Support for locally attached 3270 terminals" | ||
6 | depends on CCW | 7 | depends on CCW |
7 | help | 8 | help |
8 | Include support for IBM 3270 terminals. | 9 | Include support for IBM 3270 terminals. |
9 | 10 | ||
10 | config TN3270_TTY | 11 | config TN3270_TTY |
11 | tristate "Support for tty input/output on 3270 terminals" | 12 | def_tristate y |
13 | prompt "Support for tty input/output on 3270 terminals" | ||
12 | depends on TN3270 | 14 | depends on TN3270 |
13 | help | 15 | help |
14 | Include support for using an IBM 3270 terminal as a Linux tty. | 16 | Include support for using an IBM 3270 terminal as a Linux tty. |
15 | 17 | ||
16 | config TN3270_FS | 18 | config TN3270_FS |
17 | tristate "Support for fullscreen applications on 3270 terminals" | 19 | def_tristate m |
20 | prompt "Support for fullscreen applications on 3270 terminals" | ||
18 | depends on TN3270 | 21 | depends on TN3270 |
19 | help | 22 | help |
20 | Include support for fullscreen applications on an IBM 3270 terminal. | 23 | Include support for fullscreen applications on an IBM 3270 terminal. |
21 | 24 | ||
22 | config TN3270_CONSOLE | 25 | config TN3270_CONSOLE |
23 | bool "Support for console on 3270 terminal" | 26 | def_bool y |
27 | prompt "Support for console on 3270 terminal" | ||
24 | depends on TN3270=y && TN3270_TTY=y | 28 | depends on TN3270=y && TN3270_TTY=y |
25 | help | 29 | help |
26 | Include support for using an IBM 3270 terminal as a Linux system | 30 | Include support for using an IBM 3270 terminal as a Linux system |
27 | console. Available only if 3270 support is compiled in statically. | 31 | console. Available only if 3270 support is compiled in statically. |
28 | 32 | ||
29 | config TN3215 | 33 | config TN3215 |
30 | bool "Support for 3215 line mode terminal" | 34 | def_bool y |
35 | prompt "Support for 3215 line mode terminal" | ||
31 | depends on CCW | 36 | depends on CCW |
32 | help | 37 | help |
33 | Include support for IBM 3215 line-mode terminals. | 38 | Include support for IBM 3215 line-mode terminals. |
34 | 39 | ||
35 | config TN3215_CONSOLE | 40 | config TN3215_CONSOLE |
36 | bool "Support for console on 3215 line mode terminal" | 41 | def_bool y |
42 | prompt "Support for console on 3215 line mode terminal" | ||
37 | depends on TN3215 | 43 | depends on TN3215 |
38 | help | 44 | help |
39 | Include support for using an IBM 3215 line-mode terminal as a | 45 | Include support for using an IBM 3215 line-mode terminal as a |
40 | Linux system console. | 46 | Linux system console. |
41 | 47 | ||
42 | config CCW_CONSOLE | 48 | config CCW_CONSOLE |
43 | bool | 49 | def_bool y if TN3215_CONSOLE || TN3270_CONSOLE |
44 | depends on TN3215_CONSOLE || TN3270_CONSOLE | ||
45 | default y | ||
46 | 50 | ||
47 | config SCLP_TTY | 51 | config SCLP_TTY |
48 | bool "Support for SCLP line mode terminal" | 52 | def_bool y |
53 | prompt "Support for SCLP line mode terminal" | ||
49 | depends on S390 | 54 | depends on S390 |
50 | help | 55 | help |
51 | Include support for IBM SCLP line-mode terminals. | 56 | Include support for IBM SCLP line-mode terminals. |
52 | 57 | ||
53 | config SCLP_CONSOLE | 58 | config SCLP_CONSOLE |
54 | bool "Support for console on SCLP line mode terminal" | 59 | def_bool y |
60 | prompt "Support for console on SCLP line mode terminal" | ||
55 | depends on SCLP_TTY | 61 | depends on SCLP_TTY |
56 | help | 62 | help |
57 | Include support for using an IBM HWC line-mode terminal as the Linux | 63 | Include support for using an IBM HWC line-mode terminal as the Linux |
58 | system console. | 64 | system console. |
59 | 65 | ||
60 | config SCLP_VT220_TTY | 66 | config SCLP_VT220_TTY |
61 | bool "Support for SCLP VT220-compatible terminal" | 67 | def_bool y |
68 | prompt "Support for SCLP VT220-compatible terminal" | ||
62 | depends on S390 | 69 | depends on S390 |
63 | help | 70 | help |
64 | Include support for an IBM SCLP VT220-compatible terminal. | 71 | Include support for an IBM SCLP VT220-compatible terminal. |
65 | 72 | ||
66 | config SCLP_VT220_CONSOLE | 73 | config SCLP_VT220_CONSOLE |
67 | bool "Support for console on SCLP VT220-compatible terminal" | 74 | def_bool y |
75 | prompt "Support for console on SCLP VT220-compatible terminal" | ||
68 | depends on SCLP_VT220_TTY | 76 | depends on SCLP_VT220_TTY |
69 | help | 77 | help |
70 | Include support for using an IBM SCLP VT220-compatible terminal as a | 78 | Include support for using an IBM SCLP VT220-compatible terminal as a |
71 | Linux system console. | 79 | Linux system console. |
72 | 80 | ||
73 | config SCLP_CPI | 81 | config SCLP_CPI |
74 | tristate "Control-Program Identification" | 82 | def_tristate m |
83 | prompt "Control-Program Identification" | ||
75 | depends on S390 | 84 | depends on S390 |
76 | help | 85 | help |
77 | This option enables the hardware console interface for system | 86 | This option enables the hardware console interface for system |
@@ -83,7 +92,8 @@ config SCLP_CPI | |||
83 | need this feature and intend to run your kernel in LPAR. | 92 | need this feature and intend to run your kernel in LPAR. |
84 | 93 | ||
85 | config SCLP_ASYNC | 94 | config SCLP_ASYNC |
86 | tristate "Support for Call Home via Asynchronous SCLP Records" | 95 | def_tristate m |
96 | prompt "Support for Call Home via Asynchronous SCLP Records" | ||
87 | depends on S390 | 97 | depends on S390 |
88 | help | 98 | help |
89 | This option enables the call home function, which is able to inform | 99 | This option enables the call home function, which is able to inform |
@@ -93,7 +103,8 @@ config SCLP_ASYNC | |||
93 | need this feature and intend to run your kernel in LPAR. | 103 | need this feature and intend to run your kernel in LPAR. |
94 | 104 | ||
95 | config S390_TAPE | 105 | config S390_TAPE |
96 | tristate "S/390 tape device support" | 106 | def_tristate m |
107 | prompt "S/390 tape device support" | ||
97 | depends on CCW | 108 | depends on CCW |
98 | help | 109 | help |
99 | Select this option if you want to access channel-attached tape | 110 | Select this option if you want to access channel-attached tape |
@@ -109,7 +120,8 @@ comment "S/390 tape interface support" | |||
109 | depends on S390_TAPE | 120 | depends on S390_TAPE |
110 | 121 | ||
111 | config S390_TAPE_BLOCK | 122 | config S390_TAPE_BLOCK |
112 | bool "Support for tape block devices" | 123 | def_bool y |
124 | prompt "Support for tape block devices" | ||
113 | depends on S390_TAPE && BLOCK | 125 | depends on S390_TAPE && BLOCK |
114 | help | 126 | help |
115 | Select this option if you want to access your channel-attached tape | 127 | Select this option if you want to access your channel-attached tape |
@@ -123,7 +135,8 @@ comment "S/390 tape hardware support" | |||
123 | depends on S390_TAPE | 135 | depends on S390_TAPE |
124 | 136 | ||
125 | config S390_TAPE_34XX | 137 | config S390_TAPE_34XX |
126 | tristate "Support for 3480/3490 tape hardware" | 138 | def_tristate m |
139 | prompt "Support for 3480/3490 tape hardware" | ||
127 | depends on S390_TAPE | 140 | depends on S390_TAPE |
128 | help | 141 | help |
129 | Select this option if you want to access IBM 3480/3490 magnetic | 142 | Select this option if you want to access IBM 3480/3490 magnetic |
@@ -131,7 +144,8 @@ config S390_TAPE_34XX | |||
131 | It is safe to say "Y" here. | 144 | It is safe to say "Y" here. |
132 | 145 | ||
133 | config S390_TAPE_3590 | 146 | config S390_TAPE_3590 |
134 | tristate "Support for 3590 tape hardware" | 147 | def_tristate m |
148 | prompt "Support for 3590 tape hardware" | ||
135 | depends on S390_TAPE | 149 | depends on S390_TAPE |
136 | help | 150 | help |
137 | Select this option if you want to access IBM 3590 magnetic | 151 | Select this option if you want to access IBM 3590 magnetic |
@@ -139,7 +153,8 @@ config S390_TAPE_3590 | |||
139 | It is safe to say "Y" here. | 153 | It is safe to say "Y" here. |
140 | 154 | ||
141 | config VMLOGRDR | 155 | config VMLOGRDR |
142 | tristate "Support for the z/VM recording system services (VM only)" | 156 | def_tristate m |
157 | prompt "Support for the z/VM recording system services (VM only)" | ||
143 | depends on IUCV | 158 | depends on IUCV |
144 | help | 159 | help |
145 | Select this option if you want to be able to receive records collected | 160 | Select this option if you want to be able to receive records collected |
@@ -148,29 +163,31 @@ config VMLOGRDR | |||
148 | This driver depends on the IUCV support driver. | 163 | This driver depends on the IUCV support driver. |
149 | 164 | ||
150 | config VMCP | 165 | config VMCP |
151 | bool "Support for the z/VM CP interface" | 166 | def_bool y |
167 | prompt "Support for the z/VM CP interface" | ||
152 | depends on S390 | 168 | depends on S390 |
153 | help | 169 | help |
154 | Select this option if you want to be able to interact with the control | 170 | Select this option if you want to be able to interact with the control |
155 | program on z/VM | 171 | program on z/VM |
156 | 172 | ||
157 | config MONREADER | 173 | config MONREADER |
158 | tristate "API for reading z/VM monitor service records" | 174 | def_tristate m |
175 | prompt "API for reading z/VM monitor service records" | ||
159 | depends on IUCV | 176 | depends on IUCV |
160 | help | 177 | help |
161 | Character device driver for reading z/VM monitor service records | 178 | Character device driver for reading z/VM monitor service records |
162 | 179 | ||
163 | config MONWRITER | 180 | config MONWRITER |
164 | tristate "API for writing z/VM monitor service records" | 181 | def_tristate m |
182 | prompt "API for writing z/VM monitor service records" | ||
165 | depends on S390 | 183 | depends on S390 |
166 | default "m" | ||
167 | help | 184 | help |
168 | Character device driver for writing z/VM monitor service records | 185 | Character device driver for writing z/VM monitor service records |
169 | 186 | ||
170 | config S390_VMUR | 187 | config S390_VMUR |
171 | tristate "z/VM unit record device driver" | 188 | def_tristate m |
189 | prompt "z/VM unit record device driver" | ||
172 | depends on S390 | 190 | depends on S390 |
173 | default "m" | ||
174 | help | 191 | help |
175 | Character device driver for z/VM reader, puncher and printer. | 192 | Character device driver for z/VM reader, puncher and printer. |
176 | 193 | ||
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c index 59ec073724bf..3fb4335d491d 100644 --- a/drivers/s390/char/con3215.c +++ b/drivers/s390/char/con3215.c | |||
@@ -9,6 +9,7 @@ | |||
9 | * Dan Morrison, IBM Corporation <dmorriso@cse.buffalo.edu> | 9 | * Dan Morrison, IBM Corporation <dmorriso@cse.buffalo.edu> |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/kernel_stat.h> | ||
12 | #include <linux/module.h> | 13 | #include <linux/module.h> |
13 | #include <linux/types.h> | 14 | #include <linux/types.h> |
14 | #include <linux/kdev_t.h> | 15 | #include <linux/kdev_t.h> |
@@ -361,6 +362,7 @@ static void raw3215_irq(struct ccw_device *cdev, unsigned long intparm, | |||
361 | int cstat, dstat; | 362 | int cstat, dstat; |
362 | int count; | 363 | int count; |
363 | 364 | ||
365 | kstat_cpu(smp_processor_id()).irqs[IOINT_C15]++; | ||
364 | raw = dev_get_drvdata(&cdev->dev); | 366 | raw = dev_get_drvdata(&cdev->dev); |
365 | req = (struct raw3215_req *) intparm; | 367 | req = (struct raw3215_req *) intparm; |
366 | cstat = irb->scsw.cmd.cstat; | 368 | cstat = irb->scsw.cmd.cstat; |
diff --git a/drivers/s390/char/raw3270.c b/drivers/s390/char/raw3270.c index 2a4c566456e7..96ba2fd1c8ad 100644 --- a/drivers/s390/char/raw3270.c +++ b/drivers/s390/char/raw3270.c | |||
@@ -7,6 +7,7 @@ | |||
7 | * Copyright IBM Corp. 2003, 2009 | 7 | * Copyright IBM Corp. 2003, 2009 |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/kernel_stat.h> | ||
10 | #include <linux/module.h> | 11 | #include <linux/module.h> |
11 | #include <linux/err.h> | 12 | #include <linux/err.h> |
12 | #include <linux/init.h> | 13 | #include <linux/init.h> |
@@ -329,6 +330,7 @@ raw3270_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb) | |||
329 | struct raw3270_request *rq; | 330 | struct raw3270_request *rq; |
330 | int rc; | 331 | int rc; |
331 | 332 | ||
333 | kstat_cpu(smp_processor_id()).irqs[IOINT_C70]++; | ||
332 | rp = dev_get_drvdata(&cdev->dev); | 334 | rp = dev_get_drvdata(&cdev->dev); |
333 | if (!rp) | 335 | if (!rp) |
334 | return; | 336 | return; |
diff --git a/drivers/s390/char/sclp.c b/drivers/s390/char/sclp.c index 35cc4686b99b..b76c61f82485 100644 --- a/drivers/s390/char/sclp.c +++ b/drivers/s390/char/sclp.c | |||
@@ -7,6 +7,7 @@ | |||
7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/kernel_stat.h> | ||
10 | #include <linux/module.h> | 11 | #include <linux/module.h> |
11 | #include <linux/err.h> | 12 | #include <linux/err.h> |
12 | #include <linux/spinlock.h> | 13 | #include <linux/spinlock.h> |
@@ -18,16 +19,14 @@ | |||
18 | #include <linux/suspend.h> | 19 | #include <linux/suspend.h> |
19 | #include <linux/completion.h> | 20 | #include <linux/completion.h> |
20 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
21 | #include <asm/types.h> | ||
22 | #include <asm/s390_ext.h> | 22 | #include <asm/s390_ext.h> |
23 | #include <asm/types.h> | ||
24 | #include <asm/irq.h> | ||
23 | 25 | ||
24 | #include "sclp.h" | 26 | #include "sclp.h" |
25 | 27 | ||
26 | #define SCLP_HEADER "sclp: " | 28 | #define SCLP_HEADER "sclp: " |
27 | 29 | ||
28 | /* Structure for register_early_external_interrupt. */ | ||
29 | static ext_int_info_t ext_int_info_hwc; | ||
30 | |||
31 | /* Lock to protect internal data consistency. */ | 30 | /* Lock to protect internal data consistency. */ |
32 | static DEFINE_SPINLOCK(sclp_lock); | 31 | static DEFINE_SPINLOCK(sclp_lock); |
33 | 32 | ||
@@ -402,6 +401,7 @@ static void sclp_interrupt_handler(unsigned int ext_int_code, | |||
402 | u32 finished_sccb; | 401 | u32 finished_sccb; |
403 | u32 evbuf_pending; | 402 | u32 evbuf_pending; |
404 | 403 | ||
404 | kstat_cpu(smp_processor_id()).irqs[EXTINT_SCP]++; | ||
405 | spin_lock(&sclp_lock); | 405 | spin_lock(&sclp_lock); |
406 | finished_sccb = param32 & 0xfffffff8; | 406 | finished_sccb = param32 & 0xfffffff8; |
407 | evbuf_pending = param32 & 0x3; | 407 | evbuf_pending = param32 & 0x3; |
@@ -824,6 +824,7 @@ static void sclp_check_handler(unsigned int ext_int_code, | |||
824 | { | 824 | { |
825 | u32 finished_sccb; | 825 | u32 finished_sccb; |
826 | 826 | ||
827 | kstat_cpu(smp_processor_id()).irqs[EXTINT_SCP]++; | ||
827 | finished_sccb = param32 & 0xfffffff8; | 828 | finished_sccb = param32 & 0xfffffff8; |
828 | /* Is this the interrupt we are waiting for? */ | 829 | /* Is this the interrupt we are waiting for? */ |
829 | if (finished_sccb == 0) | 830 | if (finished_sccb == 0) |
@@ -866,8 +867,7 @@ sclp_check_interface(void) | |||
866 | 867 | ||
867 | spin_lock_irqsave(&sclp_lock, flags); | 868 | spin_lock_irqsave(&sclp_lock, flags); |
868 | /* Prepare init mask command */ | 869 | /* Prepare init mask command */ |
869 | rc = register_early_external_interrupt(0x2401, sclp_check_handler, | 870 | rc = register_external_interrupt(0x2401, sclp_check_handler); |
870 | &ext_int_info_hwc); | ||
871 | if (rc) { | 871 | if (rc) { |
872 | spin_unlock_irqrestore(&sclp_lock, flags); | 872 | spin_unlock_irqrestore(&sclp_lock, flags); |
873 | return rc; | 873 | return rc; |
@@ -900,8 +900,7 @@ sclp_check_interface(void) | |||
900 | } else | 900 | } else |
901 | rc = -EBUSY; | 901 | rc = -EBUSY; |
902 | } | 902 | } |
903 | unregister_early_external_interrupt(0x2401, sclp_check_handler, | 903 | unregister_external_interrupt(0x2401, sclp_check_handler); |
904 | &ext_int_info_hwc); | ||
905 | spin_unlock_irqrestore(&sclp_lock, flags); | 904 | spin_unlock_irqrestore(&sclp_lock, flags); |
906 | return rc; | 905 | return rc; |
907 | } | 906 | } |
@@ -1064,8 +1063,7 @@ sclp_init(void) | |||
1064 | if (rc) | 1063 | if (rc) |
1065 | goto fail_init_state_uninitialized; | 1064 | goto fail_init_state_uninitialized; |
1066 | /* Register interrupt handler */ | 1065 | /* Register interrupt handler */ |
1067 | rc = register_early_external_interrupt(0x2401, sclp_interrupt_handler, | 1066 | rc = register_external_interrupt(0x2401, sclp_interrupt_handler); |
1068 | &ext_int_info_hwc); | ||
1069 | if (rc) | 1067 | if (rc) |
1070 | goto fail_unregister_reboot_notifier; | 1068 | goto fail_unregister_reboot_notifier; |
1071 | sclp_init_state = sclp_init_state_initialized; | 1069 | sclp_init_state = sclp_init_state_initialized; |
diff --git a/drivers/s390/char/sclp_config.c b/drivers/s390/char/sclp_config.c index b497afe061cc..16e232a99fb7 100644 --- a/drivers/s390/char/sclp_config.c +++ b/drivers/s390/char/sclp_config.c | |||
@@ -33,6 +33,7 @@ static void sclp_cpu_capability_notify(struct work_struct *work) | |||
33 | int cpu; | 33 | int cpu; |
34 | struct sys_device *sysdev; | 34 | struct sys_device *sysdev; |
35 | 35 | ||
36 | s390_adjust_jiffies(); | ||
36 | pr_warning("cpu capability changed.\n"); | 37 | pr_warning("cpu capability changed.\n"); |
37 | get_online_cpus(); | 38 | get_online_cpus(); |
38 | for_each_online_cpu(cpu) { | 39 | for_each_online_cpu(cpu) { |
diff --git a/drivers/s390/char/tape_core.c b/drivers/s390/char/tape_core.c index b3a3e8e8656e..7978a0adeaf3 100644 --- a/drivers/s390/char/tape_core.c +++ b/drivers/s390/char/tape_core.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #define KMSG_COMPONENT "tape" | 14 | #define KMSG_COMPONENT "tape" |
15 | #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt | 15 | #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt |
16 | 16 | ||
17 | #include <linux/kernel_stat.h> | ||
17 | #include <linux/module.h> | 18 | #include <linux/module.h> |
18 | #include <linux/init.h> // for kernel parameters | 19 | #include <linux/init.h> // for kernel parameters |
19 | #include <linux/kmod.h> // for requesting modules | 20 | #include <linux/kmod.h> // for requesting modules |
@@ -1114,6 +1115,7 @@ __tape_do_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb) | |||
1114 | struct tape_request *request; | 1115 | struct tape_request *request; |
1115 | int rc; | 1116 | int rc; |
1116 | 1117 | ||
1118 | kstat_cpu(smp_processor_id()).irqs[IOINT_TAP]++; | ||
1117 | device = dev_get_drvdata(&cdev->dev); | 1119 | device = dev_get_drvdata(&cdev->dev); |
1118 | if (device == NULL) { | 1120 | if (device == NULL) { |
1119 | return; | 1121 | return; |
diff --git a/drivers/s390/char/vmur.c b/drivers/s390/char/vmur.c index f7e4ae6bf15a..caef1757341d 100644 --- a/drivers/s390/char/vmur.c +++ b/drivers/s390/char/vmur.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #define KMSG_COMPONENT "vmur" | 11 | #define KMSG_COMPONENT "vmur" |
12 | #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt | 12 | #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt |
13 | 13 | ||
14 | #include <linux/kernel_stat.h> | ||
14 | #include <linux/cdev.h> | 15 | #include <linux/cdev.h> |
15 | #include <linux/slab.h> | 16 | #include <linux/slab.h> |
16 | 17 | ||
@@ -302,6 +303,7 @@ static void ur_int_handler(struct ccw_device *cdev, unsigned long intparm, | |||
302 | { | 303 | { |
303 | struct urdev *urd; | 304 | struct urdev *urd; |
304 | 305 | ||
306 | kstat_cpu(smp_processor_id()).irqs[IOINT_VMR]++; | ||
305 | TRACE("ur_int_handler: intparm=0x%lx cstat=%02x dstat=%02x res=%u\n", | 307 | TRACE("ur_int_handler: intparm=0x%lx cstat=%02x dstat=%02x res=%u\n", |
306 | intparm, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat, | 308 | intparm, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat, |
307 | irb->scsw.cmd.count); | 309 | irb->scsw.cmd.count); |