diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-24 12:49:09 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-24 12:49:09 -0400 |
commit | e017507f37d5cb8b541df165a824958bc333bec3 (patch) | |
tree | 87ab0986474486623d9957efda9f3f9ea3b14069 | |
parent | 759e2a253aaefbb6da9253d517a5a8fe1801ce0f (diff) | |
parent | 27f6b416626a240e1b46f646d2e0c5266f4eac95 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 changes from Martin Schwidefsky:
"No new functions, a few changes to make the code more robust, some
cleanups and bug fixes."
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (21 commits)
s390/vtimer: rework virtual timer interface
s390/dis: Add the servc instruction to the disassembler.
s390/comments: unify copyright messages and remove file names
s390/lgr: Add init check to lgr_info_log()
s390/cpu init: use __get_cpu_var instead of per_cpu
s390/idle: reduce size of s390_idle_data structure
s390/idle: fix sequence handling vs cpu hotplug
s390/ap: resend enable adapter interrupt request.
s390/hypfs: Add missing get_next_ino()
s390/dasd: add shutdown action
s390/ipl: Fix ipib handling for "dumpreipl" shutdown action
s390/smp: make absolute lowcore / cpu restart parameter accesses more robust
s390/vmlogrdr: cleanup driver attribute usage
s390/vmlogrdr: cleanup device attribute usage
s390/ccwgroup: remove unused ccwgroup_device member
s390/cio/chp: cleanup attribute usage
s390/sigp: use sigp order code defines in assembly code
s390/smp: use sigp cpu status definitions
s390/smp/kvm: unifiy sigp definitions
s390/smp: remove redundant check
...
295 files changed, 678 insertions, 1251 deletions
diff --git a/arch/s390/appldata/appldata.h b/arch/s390/appldata/appldata.h index f0b23fc759ba..4a67f2b5f6aa 100644 --- a/arch/s390/appldata/appldata.h +++ b/arch/s390/appldata/appldata.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/appldata/appldata.h | ||
3 | * | ||
4 | * Definitions and interface for Linux - z/VM Monitor Stream. | 2 | * Definitions and interface for Linux - z/VM Monitor Stream. |
5 | * | 3 | * |
6 | * Copyright IBM Corp. 2003, 2008 | 4 | * Copyright IBM Corp. 2003, 2008 |
diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c index 24bff4f1cc52..bae0f402bf2a 100644 --- a/arch/s390/appldata/appldata_base.c +++ b/arch/s390/appldata/appldata_base.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/appldata/appldata_base.c | ||
3 | * | ||
4 | * Base infrastructure for Linux-z/VM Monitor Stream, Stage 1. | 2 | * Base infrastructure for Linux-z/VM Monitor Stream, Stage 1. |
5 | * Exports appldata_register_ops() and appldata_unregister_ops() for the | 3 | * Exports appldata_register_ops() and appldata_unregister_ops() for the |
6 | * data gathering modules. | 4 | * data gathering modules. |
@@ -29,7 +27,7 @@ | |||
29 | #include <linux/suspend.h> | 27 | #include <linux/suspend.h> |
30 | #include <linux/platform_device.h> | 28 | #include <linux/platform_device.h> |
31 | #include <asm/appldata.h> | 29 | #include <asm/appldata.h> |
32 | #include <asm/timer.h> | 30 | #include <asm/vtimer.h> |
33 | #include <asm/uaccess.h> | 31 | #include <asm/uaccess.h> |
34 | #include <asm/io.h> | 32 | #include <asm/io.h> |
35 | #include <asm/smp.h> | 33 | #include <asm/smp.h> |
@@ -84,8 +82,7 @@ static struct ctl_table appldata_dir_table[] = { | |||
84 | /* | 82 | /* |
85 | * Timer | 83 | * Timer |
86 | */ | 84 | */ |
87 | static DEFINE_PER_CPU(struct vtimer_list, appldata_timer); | 85 | static struct vtimer_list appldata_timer; |
88 | static atomic_t appldata_expire_count = ATOMIC_INIT(0); | ||
89 | 86 | ||
90 | static DEFINE_SPINLOCK(appldata_timer_lock); | 87 | static DEFINE_SPINLOCK(appldata_timer_lock); |
91 | static int appldata_interval = APPLDATA_CPU_INTERVAL; | 88 | static int appldata_interval = APPLDATA_CPU_INTERVAL; |
@@ -115,10 +112,7 @@ static LIST_HEAD(appldata_ops_list); | |||
115 | */ | 112 | */ |
116 | static void appldata_timer_function(unsigned long data) | 113 | static void appldata_timer_function(unsigned long data) |
117 | { | 114 | { |
118 | if (atomic_dec_and_test(&appldata_expire_count)) { | 115 | queue_work(appldata_wq, (struct work_struct *) data); |
119 | atomic_set(&appldata_expire_count, num_online_cpus()); | ||
120 | queue_work(appldata_wq, (struct work_struct *) data); | ||
121 | } | ||
122 | } | 116 | } |
123 | 117 | ||
124 | /* | 118 | /* |
@@ -131,7 +125,6 @@ static void appldata_work_fn(struct work_struct *work) | |||
131 | struct list_head *lh; | 125 | struct list_head *lh; |
132 | struct appldata_ops *ops; | 126 | struct appldata_ops *ops; |
133 | 127 | ||
134 | get_online_cpus(); | ||
135 | mutex_lock(&appldata_ops_mutex); | 128 | mutex_lock(&appldata_ops_mutex); |
136 | list_for_each(lh, &appldata_ops_list) { | 129 | list_for_each(lh, &appldata_ops_list) { |
137 | ops = list_entry(lh, struct appldata_ops, list); | 130 | ops = list_entry(lh, struct appldata_ops, list); |
@@ -140,7 +133,6 @@ static void appldata_work_fn(struct work_struct *work) | |||
140 | } | 133 | } |
141 | } | 134 | } |
142 | mutex_unlock(&appldata_ops_mutex); | 135 | mutex_unlock(&appldata_ops_mutex); |
143 | put_online_cpus(); | ||
144 | } | 136 | } |
145 | 137 | ||
146 | /* | 138 | /* |
@@ -168,20 +160,6 @@ int appldata_diag(char record_nr, u16 function, unsigned long buffer, | |||
168 | 160 | ||
169 | /****************************** /proc stuff **********************************/ | 161 | /****************************** /proc stuff **********************************/ |
170 | 162 | ||
171 | /* | ||
172 | * appldata_mod_vtimer_wrap() | ||
173 | * | ||
174 | * wrapper function for mod_virt_timer(), because smp_call_function_single() | ||
175 | * accepts only one parameter. | ||
176 | */ | ||
177 | static void __appldata_mod_vtimer_wrap(void *p) { | ||
178 | struct { | ||
179 | struct vtimer_list *timer; | ||
180 | u64 expires; | ||
181 | } *args = p; | ||
182 | mod_virt_timer_periodic(args->timer, args->expires); | ||
183 | } | ||
184 | |||
185 | #define APPLDATA_ADD_TIMER 0 | 163 | #define APPLDATA_ADD_TIMER 0 |
186 | #define APPLDATA_DEL_TIMER 1 | 164 | #define APPLDATA_DEL_TIMER 1 |
187 | #define APPLDATA_MOD_TIMER 2 | 165 | #define APPLDATA_MOD_TIMER 2 |
@@ -192,49 +170,28 @@ static void __appldata_mod_vtimer_wrap(void *p) { | |||
192 | * Add, delete or modify virtual timers on all online cpus. | 170 | * Add, delete or modify virtual timers on all online cpus. |
193 | * The caller needs to get the appldata_timer_lock spinlock. | 171 | * The caller needs to get the appldata_timer_lock spinlock. |
194 | */ | 172 | */ |
195 | static void | 173 | static void __appldata_vtimer_setup(int cmd) |
196 | __appldata_vtimer_setup(int cmd) | ||
197 | { | 174 | { |
198 | u64 per_cpu_interval; | 175 | u64 timer_interval = (u64) appldata_interval * 1000 * TOD_MICRO; |
199 | int i; | ||
200 | 176 | ||
201 | switch (cmd) { | 177 | switch (cmd) { |
202 | case APPLDATA_ADD_TIMER: | 178 | case APPLDATA_ADD_TIMER: |
203 | if (appldata_timer_active) | 179 | if (appldata_timer_active) |
204 | break; | 180 | break; |
205 | per_cpu_interval = (u64) (appldata_interval*1000 / | 181 | appldata_timer.expires = timer_interval; |
206 | num_online_cpus()) * TOD_MICRO; | 182 | add_virt_timer_periodic(&appldata_timer); |
207 | for_each_online_cpu(i) { | ||
208 | per_cpu(appldata_timer, i).expires = per_cpu_interval; | ||
209 | smp_call_function_single(i, add_virt_timer_periodic, | ||
210 | &per_cpu(appldata_timer, i), | ||
211 | 1); | ||
212 | } | ||
213 | appldata_timer_active = 1; | 183 | appldata_timer_active = 1; |
214 | break; | 184 | break; |
215 | case APPLDATA_DEL_TIMER: | 185 | case APPLDATA_DEL_TIMER: |
216 | for_each_online_cpu(i) | 186 | del_virt_timer(&appldata_timer); |
217 | del_virt_timer(&per_cpu(appldata_timer, i)); | ||
218 | if (!appldata_timer_active) | 187 | if (!appldata_timer_active) |
219 | break; | 188 | break; |
220 | appldata_timer_active = 0; | 189 | appldata_timer_active = 0; |
221 | atomic_set(&appldata_expire_count, num_online_cpus()); | ||
222 | break; | 190 | break; |
223 | case APPLDATA_MOD_TIMER: | 191 | case APPLDATA_MOD_TIMER: |
224 | per_cpu_interval = (u64) (appldata_interval*1000 / | ||
225 | num_online_cpus()) * TOD_MICRO; | ||
226 | if (!appldata_timer_active) | 192 | if (!appldata_timer_active) |
227 | break; | 193 | break; |
228 | for_each_online_cpu(i) { | 194 | mod_virt_timer_periodic(&appldata_timer, timer_interval); |
229 | struct { | ||
230 | struct vtimer_list *timer; | ||
231 | u64 expires; | ||
232 | } args; | ||
233 | args.timer = &per_cpu(appldata_timer, i); | ||
234 | args.expires = per_cpu_interval; | ||
235 | smp_call_function_single(i, __appldata_mod_vtimer_wrap, | ||
236 | &args, 1); | ||
237 | } | ||
238 | } | 195 | } |
239 | } | 196 | } |
240 | 197 | ||
@@ -265,14 +222,12 @@ appldata_timer_handler(ctl_table *ctl, int write, | |||
265 | len = *lenp; | 222 | len = *lenp; |
266 | if (copy_from_user(buf, buffer, len > sizeof(buf) ? sizeof(buf) : len)) | 223 | if (copy_from_user(buf, buffer, len > sizeof(buf) ? sizeof(buf) : len)) |
267 | return -EFAULT; | 224 | return -EFAULT; |
268 | get_online_cpus(); | ||
269 | spin_lock(&appldata_timer_lock); | 225 | spin_lock(&appldata_timer_lock); |
270 | if (buf[0] == '1') | 226 | if (buf[0] == '1') |
271 | __appldata_vtimer_setup(APPLDATA_ADD_TIMER); | 227 | __appldata_vtimer_setup(APPLDATA_ADD_TIMER); |
272 | else if (buf[0] == '0') | 228 | else if (buf[0] == '0') |
273 | __appldata_vtimer_setup(APPLDATA_DEL_TIMER); | 229 | __appldata_vtimer_setup(APPLDATA_DEL_TIMER); |
274 | spin_unlock(&appldata_timer_lock); | 230 | spin_unlock(&appldata_timer_lock); |
275 | put_online_cpus(); | ||
276 | out: | 231 | out: |
277 | *lenp = len; | 232 | *lenp = len; |
278 | *ppos += len; | 233 | *ppos += len; |
@@ -305,20 +260,17 @@ appldata_interval_handler(ctl_table *ctl, int write, | |||
305 | goto out; | 260 | goto out; |
306 | } | 261 | } |
307 | len = *lenp; | 262 | len = *lenp; |
308 | if (copy_from_user(buf, buffer, len > sizeof(buf) ? sizeof(buf) : len)) { | 263 | if (copy_from_user(buf, buffer, len > sizeof(buf) ? sizeof(buf) : len)) |
309 | return -EFAULT; | 264 | return -EFAULT; |
310 | } | ||
311 | interval = 0; | 265 | interval = 0; |
312 | sscanf(buf, "%i", &interval); | 266 | sscanf(buf, "%i", &interval); |
313 | if (interval <= 0) | 267 | if (interval <= 0) |
314 | return -EINVAL; | 268 | return -EINVAL; |
315 | 269 | ||
316 | get_online_cpus(); | ||
317 | spin_lock(&appldata_timer_lock); | 270 | spin_lock(&appldata_timer_lock); |
318 | appldata_interval = interval; | 271 | appldata_interval = interval; |
319 | __appldata_vtimer_setup(APPLDATA_MOD_TIMER); | 272 | __appldata_vtimer_setup(APPLDATA_MOD_TIMER); |
320 | spin_unlock(&appldata_timer_lock); | 273 | spin_unlock(&appldata_timer_lock); |
321 | put_online_cpus(); | ||
322 | out: | 274 | out: |
323 | *lenp = len; | 275 | *lenp = len; |
324 | *ppos += len; | 276 | *ppos += len; |
@@ -485,14 +437,12 @@ static int appldata_freeze(struct device *dev) | |||
485 | int rc; | 437 | int rc; |
486 | struct list_head *lh; | 438 | struct list_head *lh; |
487 | 439 | ||
488 | get_online_cpus(); | ||
489 | spin_lock(&appldata_timer_lock); | 440 | spin_lock(&appldata_timer_lock); |
490 | if (appldata_timer_active) { | 441 | if (appldata_timer_active) { |
491 | __appldata_vtimer_setup(APPLDATA_DEL_TIMER); | 442 | __appldata_vtimer_setup(APPLDATA_DEL_TIMER); |
492 | appldata_timer_suspended = 1; | 443 | appldata_timer_suspended = 1; |
493 | } | 444 | } |
494 | spin_unlock(&appldata_timer_lock); | 445 | spin_unlock(&appldata_timer_lock); |
495 | put_online_cpus(); | ||
496 | 446 | ||
497 | mutex_lock(&appldata_ops_mutex); | 447 | mutex_lock(&appldata_ops_mutex); |
498 | list_for_each(lh, &appldata_ops_list) { | 448 | list_for_each(lh, &appldata_ops_list) { |
@@ -516,14 +466,12 @@ static int appldata_restore(struct device *dev) | |||
516 | int rc; | 466 | int rc; |
517 | struct list_head *lh; | 467 | struct list_head *lh; |
518 | 468 | ||
519 | get_online_cpus(); | ||
520 | spin_lock(&appldata_timer_lock); | 469 | spin_lock(&appldata_timer_lock); |
521 | if (appldata_timer_suspended) { | 470 | if (appldata_timer_suspended) { |
522 | __appldata_vtimer_setup(APPLDATA_ADD_TIMER); | 471 | __appldata_vtimer_setup(APPLDATA_ADD_TIMER); |
523 | appldata_timer_suspended = 0; | 472 | appldata_timer_suspended = 0; |
524 | } | 473 | } |
525 | spin_unlock(&appldata_timer_lock); | 474 | spin_unlock(&appldata_timer_lock); |
526 | put_online_cpus(); | ||
527 | 475 | ||
528 | mutex_lock(&appldata_ops_mutex); | 476 | mutex_lock(&appldata_ops_mutex); |
529 | list_for_each(lh, &appldata_ops_list) { | 477 | list_for_each(lh, &appldata_ops_list) { |
@@ -567,53 +515,6 @@ static struct platform_driver appldata_pdrv = { | |||
567 | 515 | ||
568 | /******************************* init / exit *********************************/ | 516 | /******************************* init / exit *********************************/ |
569 | 517 | ||
570 | static void __cpuinit appldata_online_cpu(int cpu) | ||
571 | { | ||
572 | init_virt_timer(&per_cpu(appldata_timer, cpu)); | ||
573 | per_cpu(appldata_timer, cpu).function = appldata_timer_function; | ||
574 | per_cpu(appldata_timer, cpu).data = (unsigned long) | ||
575 | &appldata_work; | ||
576 | atomic_inc(&appldata_expire_count); | ||
577 | spin_lock(&appldata_timer_lock); | ||
578 | __appldata_vtimer_setup(APPLDATA_MOD_TIMER); | ||
579 | spin_unlock(&appldata_timer_lock); | ||
580 | } | ||
581 | |||
582 | static void __cpuinit appldata_offline_cpu(int cpu) | ||
583 | { | ||
584 | del_virt_timer(&per_cpu(appldata_timer, cpu)); | ||
585 | if (atomic_dec_and_test(&appldata_expire_count)) { | ||
586 | atomic_set(&appldata_expire_count, num_online_cpus()); | ||
587 | queue_work(appldata_wq, &appldata_work); | ||
588 | } | ||
589 | spin_lock(&appldata_timer_lock); | ||
590 | __appldata_vtimer_setup(APPLDATA_MOD_TIMER); | ||
591 | spin_unlock(&appldata_timer_lock); | ||
592 | } | ||
593 | |||
594 | static int __cpuinit appldata_cpu_notify(struct notifier_block *self, | ||
595 | unsigned long action, | ||
596 | void *hcpu) | ||
597 | { | ||
598 | switch (action) { | ||
599 | case CPU_ONLINE: | ||
600 | case CPU_ONLINE_FROZEN: | ||
601 | appldata_online_cpu((long) hcpu); | ||
602 | break; | ||
603 | case CPU_DEAD: | ||
604 | case CPU_DEAD_FROZEN: | ||
605 | appldata_offline_cpu((long) hcpu); | ||
606 | break; | ||
607 | default: | ||
608 | break; | ||
609 | } | ||
610 | return NOTIFY_OK; | ||
611 | } | ||
612 | |||
613 | static struct notifier_block __cpuinitdata appldata_nb = { | ||
614 | .notifier_call = appldata_cpu_notify, | ||
615 | }; | ||
616 | |||
617 | /* | 518 | /* |
618 | * appldata_init() | 519 | * appldata_init() |
619 | * | 520 | * |
@@ -621,7 +522,10 @@ static struct notifier_block __cpuinitdata appldata_nb = { | |||
621 | */ | 522 | */ |
622 | static int __init appldata_init(void) | 523 | static int __init appldata_init(void) |
623 | { | 524 | { |
624 | int i, rc; | 525 | int rc; |
526 | |||
527 | appldata_timer.function = appldata_timer_function; | ||
528 | appldata_timer.data = (unsigned long) &appldata_work; | ||
625 | 529 | ||
626 | rc = platform_driver_register(&appldata_pdrv); | 530 | rc = platform_driver_register(&appldata_pdrv); |
627 | if (rc) | 531 | if (rc) |
@@ -639,14 +543,6 @@ static int __init appldata_init(void) | |||
639 | goto out_device; | 543 | goto out_device; |
640 | } | 544 | } |
641 | 545 | ||
642 | get_online_cpus(); | ||
643 | for_each_online_cpu(i) | ||
644 | appldata_online_cpu(i); | ||
645 | put_online_cpus(); | ||
646 | |||
647 | /* Register cpu hotplug notifier */ | ||
648 | register_hotcpu_notifier(&appldata_nb); | ||
649 | |||
650 | appldata_sysctl_header = register_sysctl_table(appldata_dir_table); | 546 | appldata_sysctl_header = register_sysctl_table(appldata_dir_table); |
651 | return 0; | 547 | return 0; |
652 | 548 | ||
diff --git a/arch/s390/appldata/appldata_mem.c b/arch/s390/appldata/appldata_mem.c index f7d3dc555bdb..02d9a1cf5057 100644 --- a/arch/s390/appldata/appldata_mem.c +++ b/arch/s390/appldata/appldata_mem.c | |||
@@ -1,10 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/appldata/appldata_mem.c | ||
3 | * | ||
4 | * Data gathering module for Linux-VM Monitor Stream, Stage 1. | 2 | * Data gathering module for Linux-VM Monitor Stream, Stage 1. |
5 | * Collects data related to memory management. | 3 | * Collects data related to memory management. |
6 | * | 4 | * |
7 | * Copyright (C) 2003,2006 IBM Corporation, IBM Deutschland Entwicklung GmbH. | 5 | * Copyright IBM Corp. 2003, 2006 |
8 | * | 6 | * |
9 | * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> | 7 | * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> |
10 | */ | 8 | */ |
diff --git a/arch/s390/appldata/appldata_net_sum.c b/arch/s390/appldata/appldata_net_sum.c index 5da7c562a90b..1370e358d49a 100644 --- a/arch/s390/appldata/appldata_net_sum.c +++ b/arch/s390/appldata/appldata_net_sum.c | |||
@@ -1,11 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/appldata/appldata_net_sum.c | ||
3 | * | ||
4 | * Data gathering module for Linux-VM Monitor Stream, Stage 1. | 2 | * Data gathering module for Linux-VM Monitor Stream, Stage 1. |
5 | * Collects accumulated network statistics (Packets received/transmitted, | 3 | * Collects accumulated network statistics (Packets received/transmitted, |
6 | * dropped, errors, ...). | 4 | * dropped, errors, ...). |
7 | * | 5 | * |
8 | * Copyright (C) 2003,2006 IBM Corporation, IBM Deutschland Entwicklung GmbH. | 6 | * Copyright IBM Corp. 2003, 2006 |
9 | * | 7 | * |
10 | * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> | 8 | * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> |
11 | */ | 9 | */ |
diff --git a/arch/s390/appldata/appldata_os.c b/arch/s390/appldata/appldata_os.c index 4de031d6b76c..87521ba682e5 100644 --- a/arch/s390/appldata/appldata_os.c +++ b/arch/s390/appldata/appldata_os.c | |||
@@ -1,10 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/appldata/appldata_os.c | ||
3 | * | ||
4 | * Data gathering module for Linux-VM Monitor Stream, Stage 1. | 2 | * Data gathering module for Linux-VM Monitor Stream, Stage 1. |
5 | * Collects misc. OS related data (CPU utilization, running processes). | 3 | * Collects misc. OS related data (CPU utilization, running processes). |
6 | * | 4 | * |
7 | * Copyright (C) 2003,2006 IBM Corporation, IBM Deutschland Entwicklung GmbH. | 5 | * Copyright IBM Corp. 2003, 2006 |
8 | * | 6 | * |
9 | * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> | 7 | * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> |
10 | */ | 8 | */ |
diff --git a/arch/s390/crypto/aes_s390.c b/arch/s390/crypto/aes_s390.c index a9ce135893f8..e402a9dd4eda 100644 --- a/arch/s390/crypto/aes_s390.c +++ b/arch/s390/crypto/aes_s390.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * s390 implementation of the AES Cipher Algorithm. | 4 | * s390 implementation of the AES Cipher Algorithm. |
5 | * | 5 | * |
6 | * s390 Version: | 6 | * s390 Version: |
7 | * Copyright IBM Corp. 2005,2007 | 7 | * Copyright IBM Corp. 2005, 2007 |
8 | * Author(s): Jan Glauber (jang@de.ibm.com) | 8 | * Author(s): Jan Glauber (jang@de.ibm.com) |
9 | * Sebastian Siewior (sebastian@breakpoint.cc> SW-Fallback | 9 | * Sebastian Siewior (sebastian@breakpoint.cc> SW-Fallback |
10 | * | 10 | * |
diff --git a/arch/s390/crypto/crypt_s390.h b/arch/s390/crypto/crypt_s390.h index 9178db6db0a5..6c5cc6da7111 100644 --- a/arch/s390/crypto/crypt_s390.h +++ b/arch/s390/crypto/crypt_s390.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Support for s390 cryptographic instructions. | 4 | * Support for s390 cryptographic instructions. |
5 | * | 5 | * |
6 | * Copyright IBM Corp. 2003,2007 | 6 | * Copyright IBM Corp. 2003, 2007 |
7 | * Author(s): Thomas Spatzier | 7 | * Author(s): Thomas Spatzier |
8 | * Jan Glauber (jan.glauber@de.ibm.com) | 8 | * Jan Glauber (jan.glauber@de.ibm.com) |
9 | * | 9 | * |
diff --git a/arch/s390/crypto/des_s390.c b/arch/s390/crypto/des_s390.c index a52bfd124d86..1eaa371ca3ee 100644 --- a/arch/s390/crypto/des_s390.c +++ b/arch/s390/crypto/des_s390.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * s390 implementation of the DES Cipher Algorithm. | 4 | * s390 implementation of the DES Cipher Algorithm. |
5 | * | 5 | * |
6 | * Copyright IBM Corp. 2003,2011 | 6 | * Copyright IBM Corp. 2003, 2011 |
7 | * Author(s): Thomas Spatzier | 7 | * Author(s): Thomas Spatzier |
8 | * Jan Glauber (jan.glauber@de.ibm.com) | 8 | * Jan Glauber (jan.glauber@de.ibm.com) |
9 | * | 9 | * |
diff --git a/arch/s390/crypto/prng.c b/arch/s390/crypto/prng.c index 0808fbf0f7d3..94a35a4c1b48 100644 --- a/arch/s390/crypto/prng.c +++ b/arch/s390/crypto/prng.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 2006,2007 | 2 | * Copyright IBM Corp. 2006, 2007 |
3 | * Author(s): Jan Glauber <jan.glauber@de.ibm.com> | 3 | * Author(s): Jan Glauber <jan.glauber@de.ibm.com> |
4 | * Driver for the s390 pseudo random number generator | 4 | * Driver for the s390 pseudo random number generator |
5 | */ | 5 | */ |
diff --git a/arch/s390/crypto/sha1_s390.c b/arch/s390/crypto/sha1_s390.c index e9868c6e0a08..a1b3a9dc9d8a 100644 --- a/arch/s390/crypto/sha1_s390.c +++ b/arch/s390/crypto/sha1_s390.c | |||
@@ -8,7 +8,7 @@ | |||
8 | * implementation written by Steve Reid. | 8 | * implementation written by Steve Reid. |
9 | * | 9 | * |
10 | * s390 Version: | 10 | * s390 Version: |
11 | * Copyright IBM Corp. 2003,2007 | 11 | * Copyright IBM Corp. 2003, 2007 |
12 | * Author(s): Thomas Spatzier | 12 | * Author(s): Thomas Spatzier |
13 | * Jan Glauber (jan.glauber@de.ibm.com) | 13 | * Jan Glauber (jan.glauber@de.ibm.com) |
14 | * | 14 | * |
diff --git a/arch/s390/crypto/sha256_s390.c b/arch/s390/crypto/sha256_s390.c index 0317a3547cb9..9b853809a492 100644 --- a/arch/s390/crypto/sha256_s390.c +++ b/arch/s390/crypto/sha256_s390.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * s390 implementation of the SHA256 and SHA224 Secure Hash Algorithm. | 4 | * s390 implementation of the SHA256 and SHA224 Secure Hash Algorithm. |
5 | * | 5 | * |
6 | * s390 Version: | 6 | * s390 Version: |
7 | * Copyright IBM Corp. 2005,2011 | 7 | * Copyright IBM Corp. 2005, 2011 |
8 | * Author(s): Jan Glauber (jang@de.ibm.com) | 8 | * Author(s): Jan Glauber (jang@de.ibm.com) |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify it | 10 | * This program is free software; you can redistribute it and/or modify it |
diff --git a/arch/s390/hypfs/hypfs.h b/arch/s390/hypfs/hypfs.h index d9df5a060a83..f41e0ef7fdf9 100644 --- a/arch/s390/hypfs/hypfs.h +++ b/arch/s390/hypfs/hypfs.h | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/hypfs/hypfs.h | ||
3 | * Hypervisor filesystem for Linux on s390. | 2 | * Hypervisor filesystem for Linux on s390. |
4 | * | 3 | * |
5 | * Copyright (C) IBM Corp. 2006 | 4 | * Copyright IBM Corp. 2006 |
6 | * Author(s): Michael Holzheu <holzheu@de.ibm.com> | 5 | * Author(s): Michael Holzheu <holzheu@de.ibm.com> |
7 | */ | 6 | */ |
8 | 7 | ||
diff --git a/arch/s390/hypfs/hypfs_dbfs.c b/arch/s390/hypfs/hypfs_dbfs.c index b478013b7fec..13e76dabbe8b 100644 --- a/arch/s390/hypfs/hypfs_dbfs.c +++ b/arch/s390/hypfs/hypfs_dbfs.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Hypervisor filesystem for Linux on s390 - debugfs interface | 2 | * Hypervisor filesystem for Linux on s390 - debugfs interface |
3 | * | 3 | * |
4 | * Copyright (C) IBM Corp. 2010 | 4 | * Copyright IBM Corp. 2010 |
5 | * Author(s): Michael Holzheu <holzheu@linux.vnet.ibm.com> | 5 | * Author(s): Michael Holzheu <holzheu@linux.vnet.ibm.com> |
6 | */ | 6 | */ |
7 | 7 | ||
diff --git a/arch/s390/hypfs/hypfs_diag.c b/arch/s390/hypfs/hypfs_diag.c index 74c8f5e76ce4..7fd3690b6760 100644 --- a/arch/s390/hypfs/hypfs_diag.c +++ b/arch/s390/hypfs/hypfs_diag.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/hypfs/hypfs_diag.c | ||
3 | * Hypervisor filesystem for Linux on s390. Diag 204 and 224 | 2 | * Hypervisor filesystem for Linux on s390. Diag 204 and 224 |
4 | * implementation. | 3 | * implementation. |
5 | * | 4 | * |
diff --git a/arch/s390/hypfs/hypfs_vm.c b/arch/s390/hypfs/hypfs_vm.c index e54796002f61..4f6afaa8bd8f 100644 --- a/arch/s390/hypfs/hypfs_vm.c +++ b/arch/s390/hypfs/hypfs_vm.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Hypervisor filesystem for Linux on s390. z/VM implementation. | 2 | * Hypervisor filesystem for Linux on s390. z/VM implementation. |
3 | * | 3 | * |
4 | * Copyright (C) IBM Corp. 2006 | 4 | * Copyright IBM Corp. 2006 |
5 | * Author(s): Michael Holzheu <holzheu@de.ibm.com> | 5 | * Author(s): Michael Holzheu <holzheu@de.ibm.com> |
6 | */ | 6 | */ |
7 | 7 | ||
diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c index 73dae8b9b77a..6767b437a103 100644 --- a/arch/s390/hypfs/inode.c +++ b/arch/s390/hypfs/inode.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/hypfs/inode.c | ||
3 | * Hypervisor filesystem for Linux on s390. | 2 | * Hypervisor filesystem for Linux on s390. |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 2006, 2008 | 4 | * Copyright IBM Corp. 2006, 2008 |
@@ -103,6 +102,7 @@ static struct inode *hypfs_make_inode(struct super_block *sb, umode_t mode) | |||
103 | 102 | ||
104 | if (ret) { | 103 | if (ret) { |
105 | struct hypfs_sb_info *hypfs_info = sb->s_fs_info; | 104 | struct hypfs_sb_info *hypfs_info = sb->s_fs_info; |
105 | ret->i_ino = get_next_ino(); | ||
106 | ret->i_mode = mode; | 106 | ret->i_mode = mode; |
107 | ret->i_uid = hypfs_info->uid; | 107 | ret->i_uid = hypfs_info->uid; |
108 | ret->i_gid = hypfs_info->gid; | 108 | ret->i_gid = hypfs_info->gid; |
diff --git a/arch/s390/include/asm/airq.h b/arch/s390/include/asm/airq.h index 1ac80d6b0588..9819891ed7a2 100644 --- a/arch/s390/include/asm/airq.h +++ b/arch/s390/include/asm/airq.h | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/airq.h | 2 | * Copyright IBM Corp. 2002, 2007 |
3 | * | ||
4 | * Copyright IBM Corp. 2002,2007 | ||
5 | * Author(s): Ingo Adlung <adlung@de.ibm.com> | 3 | * Author(s): Ingo Adlung <adlung@de.ibm.com> |
6 | * Cornelia Huck <cornelia.huck@de.ibm.com> | 4 | * Cornelia Huck <cornelia.huck@de.ibm.com> |
7 | * Arnd Bergmann <arndb@de.ibm.com> | 5 | * Arnd Bergmann <arndb@de.ibm.com> |
diff --git a/arch/s390/include/asm/appldata.h b/arch/s390/include/asm/appldata.h index 79283dac8281..f328294faeae 100644 --- a/arch/s390/include/asm/appldata.h +++ b/arch/s390/include/asm/appldata.h | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/appldata.h | 2 | * Copyright IBM Corp. 2006 |
3 | * | ||
4 | * Copyright (C) IBM Corp. 2006 | ||
5 | * | 3 | * |
6 | * Author(s): Melissa Howland <melissah@us.ibm.com> | 4 | * Author(s): Melissa Howland <melissah@us.ibm.com> |
7 | */ | 5 | */ |
diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h index 748347baecb8..c797832daa5f 100644 --- a/arch/s390/include/asm/atomic.h +++ b/arch/s390/include/asm/atomic.h | |||
@@ -1,8 +1,5 @@ | |||
1 | #ifndef __ARCH_S390_ATOMIC__ | ||
2 | #define __ARCH_S390_ATOMIC__ | ||
3 | |||
4 | /* | 1 | /* |
5 | * Copyright 1999,2009 IBM Corp. | 2 | * Copyright IBM Corp. 1999, 2009 |
6 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>, | 3 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>, |
7 | * Denis Joseph Barrow, | 4 | * Denis Joseph Barrow, |
8 | * Arnd Bergmann <arndb@de.ibm.com>, | 5 | * Arnd Bergmann <arndb@de.ibm.com>, |
@@ -13,6 +10,9 @@ | |||
13 | * | 10 | * |
14 | */ | 11 | */ |
15 | 12 | ||
13 | #ifndef __ARCH_S390_ATOMIC__ | ||
14 | #define __ARCH_S390_ATOMIC__ | ||
15 | |||
16 | #include <linux/compiler.h> | 16 | #include <linux/compiler.h> |
17 | #include <linux/types.h> | 17 | #include <linux/types.h> |
18 | #include <asm/cmpxchg.h> | 18 | #include <asm/cmpxchg.h> |
diff --git a/arch/s390/include/asm/bitops.h b/arch/s390/include/asm/bitops.h index a6ff5a83e227..6f573890fb28 100644 --- a/arch/s390/include/asm/bitops.h +++ b/arch/s390/include/asm/bitops.h | |||
@@ -1,11 +1,6 @@ | |||
1 | #ifndef _S390_BITOPS_H | ||
2 | #define _S390_BITOPS_H | ||
3 | |||
4 | /* | 1 | /* |
5 | * include/asm-s390/bitops.h | ||
6 | * | ||
7 | * S390 version | 2 | * S390 version |
8 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
9 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
10 | * | 5 | * |
11 | * Derived from "include/asm-i386/bitops.h" | 6 | * Derived from "include/asm-i386/bitops.h" |
@@ -13,6 +8,9 @@ | |||
13 | * | 8 | * |
14 | */ | 9 | */ |
15 | 10 | ||
11 | #ifndef _S390_BITOPS_H | ||
12 | #define _S390_BITOPS_H | ||
13 | |||
16 | #ifndef _LINUX_BITOPS_H | 14 | #ifndef _LINUX_BITOPS_H |
17 | #error only <linux/bitops.h> can be included directly | 15 | #error only <linux/bitops.h> can be included directly |
18 | #endif | 16 | #endif |
diff --git a/arch/s390/include/asm/bugs.h b/arch/s390/include/asm/bugs.h index 011f1e6a2a6c..0f5bd894f4dc 100644 --- a/arch/s390/include/asm/bugs.h +++ b/arch/s390/include/asm/bugs.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/bugs.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
7 | * | 5 | * |
8 | * Derived from "include/asm-i386/bugs.h" | 6 | * Derived from "include/asm-i386/bugs.h" |
diff --git a/arch/s390/include/asm/cache.h b/arch/s390/include/asm/cache.h index 2a30d5ac0667..4d7ccac5fd1d 100644 --- a/arch/s390/include/asm/cache.h +++ b/arch/s390/include/asm/cache.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/cache.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
6 | * | 4 | * |
7 | * Derived from "include/asm-i386/cache.h" | 5 | * Derived from "include/asm-i386/cache.h" |
8 | * Copyright (C) 1992, Linus Torvalds | 6 | * Copyright (C) 1992, Linus Torvalds |
diff --git a/arch/s390/include/asm/ccwdev.h b/arch/s390/include/asm/ccwdev.h index 9381c92cc779..1cb4bb3f32d9 100644 --- a/arch/s390/include/asm/ccwdev.h +++ b/arch/s390/include/asm/ccwdev.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 2002, 2009 | 2 | * Copyright IBM Corp. 2002, 2009 |
3 | * | 3 | * |
4 | * Author(s): Arnd Bergmann <arndb@de.ibm.com> | 4 | * Author(s): Arnd Bergmann <arndb@de.ibm.com> |
5 | * | 5 | * |
diff --git a/arch/s390/include/asm/ccwgroup.h b/arch/s390/include/asm/ccwgroup.h index f2ef34f6d6e5..01a905eb11e0 100644 --- a/arch/s390/include/asm/ccwgroup.h +++ b/arch/s390/include/asm/ccwgroup.h | |||
@@ -6,14 +6,12 @@ struct ccw_driver; | |||
6 | 6 | ||
7 | /** | 7 | /** |
8 | * struct ccwgroup_device - ccw group device | 8 | * struct ccwgroup_device - ccw group device |
9 | * @creator_id: unique number of the driver | ||
10 | * @state: online/offline state | 9 | * @state: online/offline state |
11 | * @count: number of attached slave devices | 10 | * @count: number of attached slave devices |
12 | * @dev: embedded device structure | 11 | * @dev: embedded device structure |
13 | * @cdev: variable number of slave devices, allocated as needed | 12 | * @cdev: variable number of slave devices, allocated as needed |
14 | */ | 13 | */ |
15 | struct ccwgroup_device { | 14 | struct ccwgroup_device { |
16 | unsigned long creator_id; | ||
17 | enum { | 15 | enum { |
18 | CCWGROUP_OFFLINE, | 16 | CCWGROUP_OFFLINE, |
19 | CCWGROUP_ONLINE, | 17 | CCWGROUP_ONLINE, |
diff --git a/arch/s390/include/asm/checksum.h b/arch/s390/include/asm/checksum.h index 6c00f6800a34..4f57a4f3909a 100644 --- a/arch/s390/include/asm/checksum.h +++ b/arch/s390/include/asm/checksum.h | |||
@@ -1,18 +1,16 @@ | |||
1 | #ifndef _S390_CHECKSUM_H | ||
2 | #define _S390_CHECKSUM_H | ||
3 | |||
4 | /* | 1 | /* |
5 | * include/asm-s390/checksum.h | ||
6 | * S390 fast network checksum routines | 2 | * S390 fast network checksum routines |
7 | * see also arch/S390/lib/checksum.c | ||
8 | * | 3 | * |
9 | * S390 version | 4 | * S390 version |
10 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 5 | * Copyright IBM Corp. 1999 |
11 | * Author(s): Ulrich Hild (first version) | 6 | * Author(s): Ulrich Hild (first version) |
12 | * Martin Schwidefsky (heavily optimized CKSM version) | 7 | * Martin Schwidefsky (heavily optimized CKSM version) |
13 | * D.J. Barrow (third attempt) | 8 | * D.J. Barrow (third attempt) |
14 | */ | 9 | */ |
15 | 10 | ||
11 | #ifndef _S390_CHECKSUM_H | ||
12 | #define _S390_CHECKSUM_H | ||
13 | |||
16 | #include <asm/uaccess.h> | 14 | #include <asm/uaccess.h> |
17 | 15 | ||
18 | /* | 16 | /* |
diff --git a/arch/s390/include/asm/chpid.h b/arch/s390/include/asm/chpid.h index 8e88e2221771..e5bde9f9291f 100644 --- a/arch/s390/include/asm/chpid.h +++ b/arch/s390/include/asm/chpid.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/chpid.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 3 | * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> |
6 | */ | 4 | */ |
diff --git a/arch/s390/include/asm/chsc.h b/arch/s390/include/asm/chsc.h index 4943654ed7fd..bf115b49f444 100644 --- a/arch/s390/include/asm/chsc.h +++ b/arch/s390/include/asm/chsc.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * ioctl interface for /dev/chsc | 2 | * ioctl interface for /dev/chsc |
3 | * | 3 | * |
4 | * Copyright 2008 IBM Corp. | 4 | * Copyright IBM Corp. 2008 |
5 | * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> | 5 | * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> |
6 | */ | 6 | */ |
7 | 7 | ||
diff --git a/arch/s390/include/asm/cio.h b/arch/s390/include/asm/cio.h index 4c8d4d5b8bd2..77043aa44d67 100644 --- a/arch/s390/include/asm/cio.h +++ b/arch/s390/include/asm/cio.h | |||
@@ -1,7 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/cio.h | ||
3 | * include/asm-s390x/cio.h | ||
4 | * | ||
5 | * Common interface for I/O on S/390 | 2 | * Common interface for I/O on S/390 |
6 | */ | 3 | */ |
7 | #ifndef _ASM_S390_CIO_H_ | 4 | #ifndef _ASM_S390_CIO_H_ |
diff --git a/arch/s390/include/asm/cpcmd.h b/arch/s390/include/asm/cpcmd.h index 48a9eab16429..3dfadb5d648f 100644 --- a/arch/s390/include/asm/cpcmd.h +++ b/arch/s390/include/asm/cpcmd.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/cpcmd.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
7 | * Christian Borntraeger (cborntra@de.ibm.com), | 5 | * Christian Borntraeger (cborntra@de.ibm.com), |
8 | */ | 6 | */ |
diff --git a/arch/s390/include/asm/cpu.h b/arch/s390/include/asm/cpu.h index e0b69540216f..f5a8e2fcde0c 100644 --- a/arch/s390/include/asm/cpu.h +++ b/arch/s390/include/asm/cpu.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 2000,2009 | 2 | * Copyright IBM Corp. 2000, 2009 |
3 | * Author(s): Hartmut Penner <hp@de.ibm.com>, | 3 | * Author(s): Hartmut Penner <hp@de.ibm.com>, |
4 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, | 4 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, |
5 | * Christian Ehrhardt <ehrhardt@de.ibm.com>, | 5 | * Christian Ehrhardt <ehrhardt@de.ibm.com>, |
diff --git a/arch/s390/include/asm/cputime.h b/arch/s390/include/asm/cputime.h index 718374de9c7f..8709bdef233c 100644 --- a/arch/s390/include/asm/cputime.h +++ b/arch/s390/include/asm/cputime.h | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/cputime.h | 2 | * Copyright IBM Corp. 2004 |
3 | * | ||
4 | * (C) Copyright IBM Corp. 2004 | ||
5 | * | 3 | * |
6 | * Author: Martin Schwidefsky <schwidefsky@de.ibm.com> | 4 | * Author: Martin Schwidefsky <schwidefsky@de.ibm.com> |
7 | */ | 5 | */ |
@@ -167,12 +165,14 @@ static inline clock_t cputime64_to_clock_t(cputime64_t cputime) | |||
167 | } | 165 | } |
168 | 166 | ||
169 | struct s390_idle_data { | 167 | struct s390_idle_data { |
168 | int nohz_delay; | ||
170 | unsigned int sequence; | 169 | unsigned int sequence; |
171 | unsigned long long idle_count; | 170 | unsigned long long idle_count; |
172 | unsigned long long idle_enter; | ||
173 | unsigned long long idle_exit; | ||
174 | unsigned long long idle_time; | 171 | unsigned long long idle_time; |
175 | int nohz_delay; | 172 | unsigned long long clock_idle_enter; |
173 | unsigned long long clock_idle_exit; | ||
174 | unsigned long long timer_idle_enter; | ||
175 | unsigned long long timer_idle_exit; | ||
176 | }; | 176 | }; |
177 | 177 | ||
178 | DECLARE_PER_CPU(struct s390_idle_data, s390_idle); | 178 | DECLARE_PER_CPU(struct s390_idle_data, s390_idle); |
diff --git a/arch/s390/include/asm/crw.h b/arch/s390/include/asm/crw.h index 749a97e61bea..7c31d3e25cd1 100644 --- a/arch/s390/include/asm/crw.h +++ b/arch/s390/include/asm/crw.h | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * Data definitions for channel report processing | 2 | * Data definitions for channel report processing |
3 | * Copyright IBM Corp. 2000,2009 | 3 | * Copyright IBM Corp. 2000, 2009 |
4 | * Author(s): Ingo Adlung <adlung@de.ibm.com>, | 4 | * Author(s): Ingo Adlung <adlung@de.ibm.com>, |
5 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, | 5 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, |
6 | * Cornelia Huck <cornelia.huck@de.ibm.com>, | 6 | * Cornelia Huck <cornelia.huck@de.ibm.com>, |
diff --git a/arch/s390/include/asm/current.h b/arch/s390/include/asm/current.h index 7a68084ec2f0..b80941f30df5 100644 --- a/arch/s390/include/asm/current.h +++ b/arch/s390/include/asm/current.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/current.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
7 | * | 5 | * |
8 | * Derived from "include/asm-i386/current.h" | 6 | * Derived from "include/asm-i386/current.h" |
diff --git a/arch/s390/include/asm/dasd.h b/arch/s390/include/asm/dasd.h index 0be28efe5b66..38eca3ba40e2 100644 --- a/arch/s390/include/asm/dasd.h +++ b/arch/s390/include/asm/dasd.h | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd.c | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Bugreports.to..: <Linux390@de.ibm.com> | 3 | * Bugreports.to..: <Linux390@de.ibm.com> |
5 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000 | 4 | * Copyright IBM Corp. 1999, 2000 |
6 | * EMC Symmetrix ioctl Copyright EMC Corporation, 2008 | 5 | * EMC Symmetrix ioctl Copyright EMC Corporation, 2008 |
7 | * Author.........: Nigel Hislop <hislop_nigel@emc.com> | 6 | * Author.........: Nigel Hislop <hislop_nigel@emc.com> |
8 | * | 7 | * |
diff --git a/arch/s390/include/asm/debug.h b/arch/s390/include/asm/debug.h index 8a8245ed14d2..f39677e6ccde 100644 --- a/arch/s390/include/asm/debug.h +++ b/arch/s390/include/asm/debug.h | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/debug.h | ||
3 | * S/390 debug facility | 2 | * S/390 debug facility |
4 | * | 3 | * |
5 | * Copyright (C) 1999, 2000 IBM Deutschland Entwicklung GmbH, | 4 | * Copyright IBM Corp. 1999, 2000 |
6 | * IBM Corporation | ||
7 | */ | 5 | */ |
8 | 6 | ||
9 | #ifndef DEBUG_H | 7 | #ifndef DEBUG_H |
diff --git a/arch/s390/include/asm/delay.h b/arch/s390/include/asm/delay.h index 0e3b35f96be1..3f6e4095f471 100644 --- a/arch/s390/include/asm/delay.h +++ b/arch/s390/include/asm/delay.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/delay.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
7 | * | 5 | * |
8 | * Derived from "include/asm-i386/delay.h" | 6 | * Derived from "include/asm-i386/delay.h" |
diff --git a/arch/s390/include/asm/dma.h b/arch/s390/include/asm/dma.h index 7425c6af6cd4..6fb6de4f15b0 100644 --- a/arch/s390/include/asm/dma.h +++ b/arch/s390/include/asm/dma.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/dma.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | */ | 3 | */ |
6 | 4 | ||
diff --git a/arch/s390/include/asm/ebcdic.h b/arch/s390/include/asm/ebcdic.h index 7f6f641d32f4..c5befc5a3bf5 100644 --- a/arch/s390/include/asm/ebcdic.h +++ b/arch/s390/include/asm/ebcdic.h | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/ebcdic.h | ||
3 | * EBCDIC -> ASCII, ASCII -> EBCDIC conversion routines. | 2 | * EBCDIC -> ASCII, ASCII -> EBCDIC conversion routines. |
4 | * | 3 | * |
5 | * S390 version | 4 | * S390 version |
6 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 5 | * Copyright IBM Corp. 1999 |
7 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> | 6 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> |
8 | */ | 7 | */ |
9 | 8 | ||
diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h index 06151e6a3098..32e8449640fa 100644 --- a/arch/s390/include/asm/elf.h +++ b/arch/s390/include/asm/elf.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/elf.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/elf.h" | 4 | * Derived from "include/asm-i386/elf.h" |
diff --git a/arch/s390/include/asm/errno.h b/arch/s390/include/asm/errno.h index e41d5b37c4d6..395e97d8005e 100644 --- a/arch/s390/include/asm/errno.h +++ b/arch/s390/include/asm/errno.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/errno.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | */ | 4 | */ |
diff --git a/arch/s390/include/asm/etr.h b/arch/s390/include/asm/etr.h index 538e1b36a726..a24b03b9fb64 100644 --- a/arch/s390/include/asm/etr.h +++ b/arch/s390/include/asm/etr.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/etr.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2006 | 2 | * Copyright IBM Corp. 2006 |
5 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 3 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
6 | */ | 4 | */ |
diff --git a/arch/s390/include/asm/extmem.h b/arch/s390/include/asm/extmem.h index 33837d756184..6276002d76ba 100644 --- a/arch/s390/include/asm/extmem.h +++ b/arch/s390/include/asm/extmem.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390x/extmem.h | ||
3 | * | ||
4 | * definitions for external memory segment support | 2 | * definitions for external memory segment support |
5 | * Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 2003 |
6 | */ | 4 | */ |
7 | 5 | ||
8 | #ifndef _ASM_S390X_DCSS_H | 6 | #ifndef _ASM_S390X_DCSS_H |
diff --git a/arch/s390/include/asm/hardirq.h b/arch/s390/include/asm/hardirq.h index 510ba9ef4248..0c82ba86e997 100644 --- a/arch/s390/include/asm/hardirq.h +++ b/arch/s390/include/asm/hardirq.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/hardirq.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999, 2000 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
7 | * Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) | 5 | * Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) |
8 | * | 6 | * |
diff --git a/arch/s390/include/asm/idals.h b/arch/s390/include/asm/idals.h index aef0dde340d1..ea5a6e45fd93 100644 --- a/arch/s390/include/asm/idals.h +++ b/arch/s390/include/asm/idals.h | |||
@@ -1,10 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/include/asm-s390x/idals.h | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 3 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
5 | * Bugreports.to..: <Linux390@de.ibm.com> | 4 | * Bugreports.to..: <Linux390@de.ibm.com> |
6 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2000a | 5 | * Copyright IBM Corp. 2000 |
7 | 6 | * | |
8 | * History of changes | 7 | * History of changes |
9 | * 07/24/00 new file | 8 | * 07/24/00 new file |
10 | * 05/04/02 code restructuring. | 9 | * 05/04/02 code restructuring. |
diff --git a/arch/s390/include/asm/io.h b/arch/s390/include/asm/io.h index f81a0975cbea..559e921a6bba 100644 --- a/arch/s390/include/asm/io.h +++ b/arch/s390/include/asm/io.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/io.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
7 | * | 5 | * |
8 | * Derived from "include/asm-i386/io.h" | 6 | * Derived from "include/asm-i386/io.h" |
diff --git a/arch/s390/include/asm/irqflags.h b/arch/s390/include/asm/irqflags.h index 38fdf451febb..37b9091ab8c0 100644 --- a/arch/s390/include/asm/irqflags.h +++ b/arch/s390/include/asm/irqflags.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 2006,2010 | 2 | * Copyright IBM Corp. 2006, 2010 |
3 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> | 3 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> |
4 | */ | 4 | */ |
5 | 5 | ||
diff --git a/arch/s390/include/asm/kexec.h b/arch/s390/include/asm/kexec.h index f4f38826eebb..694bcd6bd927 100644 --- a/arch/s390/include/asm/kexec.h +++ b/arch/s390/include/asm/kexec.h | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/kexec.h | 2 | * Copyright IBM Corp. 2005 |
3 | * | ||
4 | * (C) Copyright IBM Corp. 2005 | ||
5 | * | 3 | * |
6 | * Author(s): Rolf Adelsberger <adelsberger@de.ibm.com> | 4 | * Author(s): Rolf Adelsberger <adelsberger@de.ibm.com> |
7 | * | 5 | * |
diff --git a/arch/s390/include/asm/kprobes.h b/arch/s390/include/asm/kprobes.h index a231a9439c4b..dcf6948a875c 100644 --- a/arch/s390/include/asm/kprobes.h +++ b/arch/s390/include/asm/kprobes.h | |||
@@ -17,7 +17,7 @@ | |||
17 | * along with this program; if not, write to the Free Software | 17 | * along with this program; if not, write to the Free Software |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
19 | * | 19 | * |
20 | * Copyright (C) IBM Corporation, 2002, 2006 | 20 | * Copyright IBM Corp. 2002, 2006 |
21 | * | 21 | * |
22 | * 2002-Oct Created by Vamsi Krishna S <vamsi_krishna@in.ibm.com> Kernel | 22 | * 2002-Oct Created by Vamsi Krishna S <vamsi_krishna@in.ibm.com> Kernel |
23 | * Probes initial implementation ( includes suggestions from | 23 | * Probes initial implementation ( includes suggestions from |
diff --git a/arch/s390/include/asm/kvm.h b/arch/s390/include/asm/kvm.h index bdcbe0f8dd7b..d25da598ec62 100644 --- a/arch/s390/include/asm/kvm.h +++ b/arch/s390/include/asm/kvm.h | |||
@@ -1,7 +1,7 @@ | |||
1 | #ifndef __LINUX_KVM_S390_H | 1 | #ifndef __LINUX_KVM_S390_H |
2 | #define __LINUX_KVM_S390_H | 2 | #define __LINUX_KVM_S390_H |
3 | /* | 3 | /* |
4 | * asm-s390/kvm.h - KVM s390 specific structures and definitions | 4 | * KVM s390 specific structures and definitions |
5 | * | 5 | * |
6 | * Copyright IBM Corp. 2008 | 6 | * Copyright IBM Corp. 2008 |
7 | * | 7 | * |
diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h index dd17537b9a9d..b7841546991f 100644 --- a/arch/s390/include/asm/kvm_host.h +++ b/arch/s390/include/asm/kvm_host.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * asm-s390/kvm_host.h - definition for kernel virtual machines on s390 | 2 | * definition for kernel virtual machines on s390 |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008,2009 | 4 | * Copyright IBM Corp. 2008, 2009 |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License (version 2 only) | 7 | * it under the terms of the GNU General Public License (version 2 only) |
diff --git a/arch/s390/include/asm/kvm_para.h b/arch/s390/include/asm/kvm_para.h index a98832961035..da44867de60f 100644 --- a/arch/s390/include/asm/kvm_para.h +++ b/arch/s390/include/asm/kvm_para.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * asm-s390/kvm_para.h - definition for paravirtual devices on s390 | 2 | * definition for paravirtual devices on s390 |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008 | 4 | * Copyright IBM Corp. 2008 |
5 | * | 5 | * |
diff --git a/arch/s390/include/asm/kvm_virtio.h b/arch/s390/include/asm/kvm_virtio.h index 72f614181eff..44a438ca9e72 100644 --- a/arch/s390/include/asm/kvm_virtio.h +++ b/arch/s390/include/asm/kvm_virtio.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * kvm_virtio.h - definition for virtio for kvm on s390 | 2 | * definition for virtio for kvm on s390 |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008 | 4 | * Copyright IBM Corp. 2008 |
5 | * | 5 | * |
diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h index 47853debb3b9..aab5555bbbda 100644 --- a/arch/s390/include/asm/lowcore.h +++ b/arch/s390/include/asm/lowcore.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 1999,2012 | 2 | * Copyright IBM Corp. 1999, 2012 |
3 | * Author(s): Hartmut Penner <hp@de.ibm.com>, | 3 | * Author(s): Hartmut Penner <hp@de.ibm.com>, |
4 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, | 4 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, |
5 | * Denis Joseph Barrow, | 5 | * Denis Joseph Barrow, |
@@ -302,12 +302,7 @@ struct _lowcore { | |||
302 | */ | 302 | */ |
303 | __u64 ipib; /* 0x0e00 */ | 303 | __u64 ipib; /* 0x0e00 */ |
304 | __u32 ipib_checksum; /* 0x0e08 */ | 304 | __u32 ipib_checksum; /* 0x0e08 */ |
305 | /* | 305 | __u64 vmcore_info; /* 0x0e0c */ |
306 | * Because the vmcore_info pointer is not 8 byte aligned it never | ||
307 | * should not be accessed directly. For accessing the pointer, first | ||
308 | * copy it to a local pointer variable. | ||
309 | */ | ||
310 | __u8 vmcore_info[8]; /* 0x0e0c */ | ||
311 | __u8 pad_0x0e14[0x0e18-0x0e14]; /* 0x0e14 */ | 306 | __u8 pad_0x0e14[0x0e18-0x0e14]; /* 0x0e14 */ |
312 | __u64 os_info; /* 0x0e18 */ | 307 | __u64 os_info; /* 0x0e18 */ |
313 | __u8 pad_0x0e20[0x0f00-0x0e20]; /* 0x0e20 */ | 308 | __u8 pad_0x0e20[0x0f00-0x0e20]; /* 0x0e20 */ |
diff --git a/arch/s390/include/asm/mathemu.h b/arch/s390/include/asm/mathemu.h index e8dd1ba8edb0..614dfaf47f71 100644 --- a/arch/s390/include/asm/mathemu.h +++ b/arch/s390/include/asm/mathemu.h | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/mathemu.h | ||
3 | * IEEE floating point emulation. | 2 | * IEEE floating point emulation. |
4 | * | 3 | * |
5 | * S390 version | 4 | * S390 version |
6 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 5 | * Copyright IBM Corp. 1999 |
7 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
8 | */ | 7 | */ |
9 | 8 | ||
diff --git a/arch/s390/include/asm/mman.h b/arch/s390/include/asm/mman.h index d49760e63506..abc1932ac4e1 100644 --- a/arch/s390/include/asm/mman.h +++ b/arch/s390/include/asm/mman.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/mman.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/mman.h" | 4 | * Derived from "include/asm-i386/mman.h" |
diff --git a/arch/s390/include/asm/mmu_context.h b/arch/s390/include/asm/mmu_context.h index 69bdf72e95ec..5c63615f1349 100644 --- a/arch/s390/include/asm/mmu_context.h +++ b/arch/s390/include/asm/mmu_context.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/mmu_context.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/mmu_context.h" | 4 | * Derived from "include/asm-i386/mmu_context.h" |
diff --git a/arch/s390/include/asm/monwriter.h b/arch/s390/include/asm/monwriter.h index f0cbf96c52e6..f845c8e2f861 100644 --- a/arch/s390/include/asm/monwriter.h +++ b/arch/s390/include/asm/monwriter.h | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/monwriter.h | 2 | * Copyright IBM Corp. 2006 |
3 | * | ||
4 | * Copyright (C) IBM Corp. 2006 | ||
5 | * Character device driver for writing z/VM APPLDATA monitor records | 3 | * Character device driver for writing z/VM APPLDATA monitor records |
6 | * Version 1.0 | 4 | * Version 1.0 |
7 | * Author(s): Melissa Howland <melissah@us.ibm.com> | 5 | * Author(s): Melissa Howland <melissah@us.ibm.com> |
diff --git a/arch/s390/include/asm/nmi.h b/arch/s390/include/asm/nmi.h index f4b60441adca..35f8ec185616 100644 --- a/arch/s390/include/asm/nmi.h +++ b/arch/s390/include/asm/nmi.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Machine check handler definitions | 2 | * Machine check handler definitions |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2000,2009 | 4 | * Copyright IBM Corp. 2000, 2009 |
5 | * Author(s): Ingo Adlung <adlung@de.ibm.com>, | 5 | * Author(s): Ingo Adlung <adlung@de.ibm.com>, |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, | 6 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, |
7 | * Cornelia Huck <cornelia.huck@de.ibm.com>, | 7 | * Cornelia Huck <cornelia.huck@de.ibm.com>, |
diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h index f7ec548c2b9d..27ab3c7c1e8b 100644 --- a/arch/s390/include/asm/page.h +++ b/arch/s390/include/asm/page.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/page.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999, 2000 |
6 | * Author(s): Hartmut Penner (hp@de.ibm.com) | 4 | * Author(s): Hartmut Penner (hp@de.ibm.com) |
7 | */ | 5 | */ |
8 | 6 | ||
diff --git a/arch/s390/include/asm/pgalloc.h b/arch/s390/include/asm/pgalloc.h index 43078c194394..590c3219c634 100644 --- a/arch/s390/include/asm/pgalloc.h +++ b/arch/s390/include/asm/pgalloc.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/pgalloc.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999, 2000 |
6 | * Author(s): Hartmut Penner (hp@de.ibm.com) | 4 | * Author(s): Hartmut Penner (hp@de.ibm.com) |
7 | * Martin Schwidefsky (schwidefsky@de.ibm.com) | 5 | * Martin Schwidefsky (schwidefsky@de.ibm.com) |
8 | * | 6 | * |
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index b3227415abda..6bd7d7483017 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/pgtable.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999, 2000 |
6 | * Author(s): Hartmut Penner (hp@de.ibm.com) | 4 | * Author(s): Hartmut Penner (hp@de.ibm.com) |
7 | * Ulrich Weigand (weigand@de.ibm.com) | 5 | * Ulrich Weigand (weigand@de.ibm.com) |
8 | * Martin Schwidefsky (schwidefsky@de.ibm.com) | 6 | * Martin Schwidefsky (schwidefsky@de.ibm.com) |
diff --git a/arch/s390/include/asm/posix_types.h b/arch/s390/include/asm/posix_types.h index 7be104c0f192..7bcc14e395f0 100644 --- a/arch/s390/include/asm/posix_types.h +++ b/arch/s390/include/asm/posix_types.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/posix_types.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | */ | 4 | */ |
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h index 20d0585cf905..c40fa91e38a8 100644 --- a/arch/s390/include/asm/processor.h +++ b/arch/s390/include/asm/processor.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/processor.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
6 | * Author(s): Hartmut Penner (hp@de.ibm.com), | 4 | * Author(s): Hartmut Penner (hp@de.ibm.com), |
7 | * Martin Schwidefsky (schwidefsky@de.ibm.com) | 5 | * Martin Schwidefsky (schwidefsky@de.ibm.com) |
8 | * | 6 | * |
@@ -348,4 +346,14 @@ extern void (*s390_base_ext_handler_fn)(void); | |||
348 | ".previous\n" | 346 | ".previous\n" |
349 | #endif | 347 | #endif |
350 | 348 | ||
349 | extern int memcpy_real(void *, void *, size_t); | ||
350 | extern void memcpy_absolute(void *, void *, size_t); | ||
351 | |||
352 | #define mem_assign_absolute(dest, val) { \ | ||
353 | __typeof__(dest) __tmp = (val); \ | ||
354 | \ | ||
355 | BUILD_BUG_ON(sizeof(__tmp) != sizeof(val)); \ | ||
356 | memcpy_absolute(&(dest), &__tmp, sizeof(__tmp)); \ | ||
357 | } | ||
358 | |||
351 | #endif /* __ASM_S390_PROCESSOR_H */ | 359 | #endif /* __ASM_S390_PROCESSOR_H */ |
diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h index aeb77f017985..d5f08ea566ed 100644 --- a/arch/s390/include/asm/ptrace.h +++ b/arch/s390/include/asm/ptrace.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/ptrace.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999, 2000 |
6 | * Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) | 4 | * Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) |
7 | */ | 5 | */ |
8 | 6 | ||
diff --git a/arch/s390/include/asm/qdio.h b/arch/s390/include/asm/qdio.h index f039d86adf67..57d0d7e794b1 100644 --- a/arch/s390/include/asm/qdio.h +++ b/arch/s390/include/asm/qdio.h | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * linux/include/asm-s390/qdio.h | 2 | * Copyright IBM Corp. 2000, 2008 |
3 | * | ||
4 | * Copyright 2000,2008 IBM Corp. | ||
5 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com> | 3 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com> |
6 | * Jan Glauber <jang@linux.vnet.ibm.com> | 4 | * Jan Glauber <jang@linux.vnet.ibm.com> |
7 | * | 5 | * |
diff --git a/arch/s390/include/asm/qeth.h b/arch/s390/include/asm/qeth.h index 2c7c898c03e4..3a896cf52589 100644 --- a/arch/s390/include/asm/qeth.h +++ b/arch/s390/include/asm/qeth.h | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/qeth.h | ||
3 | * | ||
4 | * ioctl definitions for qeth driver | 2 | * ioctl definitions for qeth driver |
5 | * | 3 | * |
6 | * Copyright (C) 2004 IBM Corporation | 4 | * Copyright IBM Corp. 2004 |
7 | * | 5 | * |
8 | * Author(s): Thomas Spatzier <tspat@de.ibm.com> | 6 | * Author(s): Thomas Spatzier <tspat@de.ibm.com> |
9 | * | 7 | * |
diff --git a/arch/s390/include/asm/reset.h b/arch/s390/include/asm/reset.h index 3d6ad4ad2a3f..804578587a7a 100644 --- a/arch/s390/include/asm/reset.h +++ b/arch/s390/include/asm/reset.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/reset.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2006 | 2 | * Copyright IBM Corp. 2006 |
5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | 3 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> |
6 | */ | 4 | */ |
diff --git a/arch/s390/include/asm/resource.h b/arch/s390/include/asm/resource.h index 366c01de04f2..ec23d1c73c92 100644 --- a/arch/s390/include/asm/resource.h +++ b/arch/s390/include/asm/resource.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/resource.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/resources.h" | 4 | * Derived from "include/asm-i386/resources.h" |
diff --git a/arch/s390/include/asm/rwsem.h b/arch/s390/include/asm/rwsem.h index 1ceee10264c3..487f9b64efb9 100644 --- a/arch/s390/include/asm/rwsem.h +++ b/arch/s390/include/asm/rwsem.h | |||
@@ -2,10 +2,8 @@ | |||
2 | #define _S390_RWSEM_H | 2 | #define _S390_RWSEM_H |
3 | 3 | ||
4 | /* | 4 | /* |
5 | * include/asm-s390/rwsem.h | ||
6 | * | ||
7 | * S390 version | 5 | * S390 version |
8 | * Copyright (C) 2002 IBM Deutschland Entwicklung GmbH, IBM Corporation | 6 | * Copyright IBM Corp. 2002 |
9 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 7 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
10 | * | 8 | * |
11 | * Based on asm-alpha/semaphore.h and asm-i386/rwsem.h | 9 | * Based on asm-alpha/semaphore.h and asm-i386/rwsem.h |
diff --git a/arch/s390/include/asm/sclp.h b/arch/s390/include/asm/sclp.h index bf238c55740b..8685d1fb8b75 100644 --- a/arch/s390/include/asm/sclp.h +++ b/arch/s390/include/asm/sclp.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/sclp.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | 3 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> |
6 | */ | 4 | */ |
diff --git a/arch/s390/include/asm/scsw.h b/arch/s390/include/asm/scsw.h index de389cb54d28..4071d00978cb 100644 --- a/arch/s390/include/asm/scsw.h +++ b/arch/s390/include/asm/scsw.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Helper functions for scsw access. | 2 | * Helper functions for scsw access. |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008,2009 | 4 | * Copyright IBM Corp. 2008, 2009 |
5 | * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 5 | * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> |
6 | */ | 6 | */ |
7 | 7 | ||
diff --git a/arch/s390/include/asm/setup.h b/arch/s390/include/asm/setup.h index 40eb2ff88e9e..57e80534375a 100644 --- a/arch/s390/include/asm/setup.h +++ b/arch/s390/include/asm/setup.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/setup.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright IBM Corp. 1999,2010 | 3 | * Copyright IBM Corp. 1999, 2010 |
6 | */ | 4 | */ |
7 | 5 | ||
8 | #ifndef _ASM_S390_SETUP_H | 6 | #ifndef _ASM_S390_SETUP_H |
diff --git a/arch/s390/include/asm/shmparam.h b/arch/s390/include/asm/shmparam.h index c2e0c0508e73..e985182738f8 100644 --- a/arch/s390/include/asm/shmparam.h +++ b/arch/s390/include/asm/shmparam.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/shmparam.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/shmparam.h" | 4 | * Derived from "include/asm-i386/shmparam.h" |
diff --git a/arch/s390/include/asm/sigcontext.h b/arch/s390/include/asm/sigcontext.h index aeb6e0b13329..584787f6ce44 100644 --- a/arch/s390/include/asm/sigcontext.h +++ b/arch/s390/include/asm/sigcontext.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/sigcontext.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999, 2000 |
6 | */ | 4 | */ |
7 | 5 | ||
8 | #ifndef _ASM_S390_SIGCONTEXT_H | 6 | #ifndef _ASM_S390_SIGCONTEXT_H |
diff --git a/arch/s390/include/asm/siginfo.h b/arch/s390/include/asm/siginfo.h index e0ff1ab054be..91fd3e4b70ce 100644 --- a/arch/s390/include/asm/siginfo.h +++ b/arch/s390/include/asm/siginfo.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/siginfo.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/siginfo.h" | 4 | * Derived from "include/asm-i386/siginfo.h" |
diff --git a/arch/s390/include/asm/signal.h b/arch/s390/include/asm/signal.h index cdf5cb2fe03f..6d4d9d1faee9 100644 --- a/arch/s390/include/asm/signal.h +++ b/arch/s390/include/asm/signal.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/signal.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/signal.h" | 4 | * Derived from "include/asm-i386/signal.h" |
diff --git a/arch/s390/include/asm/sigp.h b/arch/s390/include/asm/sigp.h new file mode 100644 index 000000000000..7306270b5b84 --- /dev/null +++ b/arch/s390/include/asm/sigp.h | |||
@@ -0,0 +1,31 @@ | |||
1 | #ifndef __S390_ASM_SIGP_H | ||
2 | #define __S390_ASM_SIGP_H | ||
3 | |||
4 | /* SIGP order codes */ | ||
5 | #define SIGP_SENSE 1 | ||
6 | #define SIGP_EXTERNAL_CALL 2 | ||
7 | #define SIGP_EMERGENCY_SIGNAL 3 | ||
8 | #define SIGP_STOP 5 | ||
9 | #define SIGP_RESTART 6 | ||
10 | #define SIGP_STOP_AND_STORE_STATUS 9 | ||
11 | #define SIGP_INITIAL_CPU_RESET 11 | ||
12 | #define SIGP_SET_PREFIX 13 | ||
13 | #define SIGP_STORE_STATUS_AT_ADDRESS 14 | ||
14 | #define SIGP_SET_ARCHITECTURE 18 | ||
15 | #define SIGP_SENSE_RUNNING 21 | ||
16 | |||
17 | /* SIGP condition codes */ | ||
18 | #define SIGP_CC_ORDER_CODE_ACCEPTED 0 | ||
19 | #define SIGP_CC_STATUS_STORED 1 | ||
20 | #define SIGP_CC_BUSY 2 | ||
21 | #define SIGP_CC_NOT_OPERATIONAL 3 | ||
22 | |||
23 | /* SIGP cpu status bits */ | ||
24 | |||
25 | #define SIGP_STATUS_CHECK_STOP 0x00000010UL | ||
26 | #define SIGP_STATUS_STOPPED 0x00000040UL | ||
27 | #define SIGP_STATUS_INVALID_PARAMETER 0x00000100UL | ||
28 | #define SIGP_STATUS_INCORRECT_STATE 0x00000200UL | ||
29 | #define SIGP_STATUS_NOT_RUNNING 0x00000400UL | ||
30 | |||
31 | #endif /* __S390_ASM_SIGP_H */ | ||
diff --git a/arch/s390/include/asm/smp.h b/arch/s390/include/asm/smp.h index 0b6f586c1383..a0a8340daafa 100644 --- a/arch/s390/include/asm/smp.h +++ b/arch/s390/include/asm/smp.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 1999,2012 | 2 | * Copyright IBM Corp. 1999, 2012 |
3 | * Author(s): Denis Joseph Barrow, | 3 | * Author(s): Denis Joseph Barrow, |
4 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, | 4 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, |
5 | * Heiko Carstens <heiko.carstens@de.ibm.com>, | 5 | * Heiko Carstens <heiko.carstens@de.ibm.com>, |
diff --git a/arch/s390/include/asm/socket.h b/arch/s390/include/asm/socket.h index c91b720965c0..69718cd6d635 100644 --- a/arch/s390/include/asm/socket.h +++ b/arch/s390/include/asm/socket.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/socket.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/socket.h" | 4 | * Derived from "include/asm-i386/socket.h" |
diff --git a/arch/s390/include/asm/spinlock.h b/arch/s390/include/asm/spinlock.h index fd94dfec8d08..701fe8c59e1f 100644 --- a/arch/s390/include/asm/spinlock.h +++ b/arch/s390/include/asm/spinlock.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/spinlock.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
7 | * | 5 | * |
8 | * Derived from "include/asm-i386/spinlock.h" | 6 | * Derived from "include/asm-i386/spinlock.h" |
diff --git a/arch/s390/include/asm/stat.h b/arch/s390/include/asm/stat.h index d92959eebb65..b4ca97d91466 100644 --- a/arch/s390/include/asm/stat.h +++ b/arch/s390/include/asm/stat.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/stat.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/stat.h" | 4 | * Derived from "include/asm-i386/stat.h" |
diff --git a/arch/s390/include/asm/statfs.h b/arch/s390/include/asm/statfs.h index 3be7fbd406c8..5acca0a34c20 100644 --- a/arch/s390/include/asm/statfs.h +++ b/arch/s390/include/asm/statfs.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/statfs.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/statfs.h" | 4 | * Derived from "include/asm-i386/statfs.h" |
diff --git a/arch/s390/include/asm/string.h b/arch/s390/include/asm/string.h index 8cc160c9e1cb..1bd1352fa3b5 100644 --- a/arch/s390/include/asm/string.h +++ b/arch/s390/include/asm/string.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/string.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
7 | */ | 5 | */ |
8 | 6 | ||
diff --git a/arch/s390/include/asm/swab.h b/arch/s390/include/asm/swab.h index a3e4ebb32090..da3bfe5cc161 100644 --- a/arch/s390/include/asm/swab.h +++ b/arch/s390/include/asm/swab.h | |||
@@ -2,10 +2,8 @@ | |||
2 | #define _S390_SWAB_H | 2 | #define _S390_SWAB_H |
3 | 3 | ||
4 | /* | 4 | /* |
5 | * include/asm-s390/swab.h | ||
6 | * | ||
7 | * S390 version | 5 | * S390 version |
8 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 6 | * Copyright IBM Corp. 1999 |
9 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 7 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
10 | */ | 8 | */ |
11 | 9 | ||
diff --git a/arch/s390/include/asm/sysinfo.h b/arch/s390/include/asm/sysinfo.h index 79d3d6e2e9c5..282ee36f6162 100644 --- a/arch/s390/include/asm/sysinfo.h +++ b/arch/s390/include/asm/sysinfo.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * definition for store system information stsi | 2 | * definition for store system information stsi |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2001,2008 | 4 | * Copyright IBM Corp. 2001, 2008 |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License (version 2 only) | 7 | * it under the terms of the GNU General Public License (version 2 only) |
diff --git a/arch/s390/include/asm/tape390.h b/arch/s390/include/asm/tape390.h index 884fba48f1ff..b2bc4bab7929 100644 --- a/arch/s390/include/asm/tape390.h +++ b/arch/s390/include/asm/tape390.h | |||
@@ -1,10 +1,9 @@ | |||
1 | /************************************************************************* | 1 | /************************************************************************* |
2 | * | 2 | * |
3 | * tape390.h | ||
4 | * enables user programs to display messages and control encryption | 3 | * enables user programs to display messages and control encryption |
5 | * on s390 tape devices | 4 | * on s390 tape devices |
6 | * | 5 | * |
7 | * Copyright IBM Corp. 2001,2006 | 6 | * Copyright IBM Corp. 2001, 2006 |
8 | * Author(s): Michael Holzheu <holzheu@de.ibm.com> | 7 | * Author(s): Michael Holzheu <holzheu@de.ibm.com> |
9 | * | 8 | * |
10 | *************************************************************************/ | 9 | *************************************************************************/ |
diff --git a/arch/s390/include/asm/termios.h b/arch/s390/include/asm/termios.h index bc3a35cefc96..cb9fe2786b81 100644 --- a/arch/s390/include/asm/termios.h +++ b/arch/s390/include/asm/termios.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/termios.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/termios.h" | 4 | * Derived from "include/asm-i386/termios.h" |
diff --git a/arch/s390/include/asm/thread_info.h b/arch/s390/include/asm/thread_info.h index 4e40b25cd060..bb08e2afc5de 100644 --- a/arch/s390/include/asm/thread_info.h +++ b/arch/s390/include/asm/thread_info.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/thread_info.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) IBM Corp. 2002,2006 | 3 | * Copyright IBM Corp. 2002, 2006 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
7 | */ | 5 | */ |
8 | 6 | ||
diff --git a/arch/s390/include/asm/timer.h b/arch/s390/include/asm/timer.h deleted file mode 100644 index 15d647901e5c..000000000000 --- a/arch/s390/include/asm/timer.h +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-s390/timer.h | ||
3 | * | ||
4 | * (C) Copyright IBM Corp. 2003,2006 | ||
5 | * Virtual CPU timer | ||
6 | * | ||
7 | * Author: Jan Glauber (jang@de.ibm.com) | ||
8 | */ | ||
9 | |||
10 | #ifndef _ASM_S390_TIMER_H | ||
11 | #define _ASM_S390_TIMER_H | ||
12 | |||
13 | #include <linux/timer.h> | ||
14 | |||
15 | #define VTIMER_MAX_SLICE (0x7ffffffffffff000LL) | ||
16 | |||
17 | struct vtimer_list { | ||
18 | struct list_head entry; | ||
19 | |||
20 | int cpu; | ||
21 | __u64 expires; | ||
22 | __u64 interval; | ||
23 | |||
24 | void (*function)(unsigned long); | ||
25 | unsigned long data; | ||
26 | }; | ||
27 | |||
28 | /* the vtimer value will wrap after ca. 71 years */ | ||
29 | struct vtimer_queue { | ||
30 | struct list_head list; | ||
31 | spinlock_t lock; | ||
32 | __u64 timer; /* last programmed timer */ | ||
33 | __u64 elapsed; /* elapsed time of timer expire values */ | ||
34 | __u64 idle_enter; /* cpu timer on idle enter */ | ||
35 | __u64 idle_exit; /* cpu timer on idle exit */ | ||
36 | }; | ||
37 | |||
38 | extern void init_virt_timer(struct vtimer_list *timer); | ||
39 | extern void add_virt_timer(void *new); | ||
40 | extern void add_virt_timer_periodic(void *new); | ||
41 | extern int mod_virt_timer(struct vtimer_list *timer, __u64 expires); | ||
42 | extern int mod_virt_timer_periodic(struct vtimer_list *timer, __u64 expires); | ||
43 | extern int del_virt_timer(struct vtimer_list *timer); | ||
44 | |||
45 | extern void init_cpu_vtimer(void); | ||
46 | extern void vtime_init(void); | ||
47 | |||
48 | extern void vtime_stop_cpu(void); | ||
49 | extern void vtime_start_leave(void); | ||
50 | |||
51 | #endif /* _ASM_S390_TIMER_H */ | ||
diff --git a/arch/s390/include/asm/timex.h b/arch/s390/include/asm/timex.h index 239ece9e53c1..fba4d66788a2 100644 --- a/arch/s390/include/asm/timex.h +++ b/arch/s390/include/asm/timex.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/timex.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
6 | * | 4 | * |
7 | * Derived from "include/asm-i386/timex.h" | 5 | * Derived from "include/asm-i386/timex.h" |
8 | * Copyright (C) 1992, Linus Torvalds | 6 | * Copyright (C) 1992, Linus Torvalds |
diff --git a/arch/s390/include/asm/types.h b/arch/s390/include/asm/types.h index 6c8c35f8df14..6ba7c2c7217a 100644 --- a/arch/s390/include/asm/types.h +++ b/arch/s390/include/asm/types.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/types.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/types.h" | 4 | * Derived from "include/asm-i386/types.h" |
diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h index 1f3a79bcd262..a8ab18b18b54 100644 --- a/arch/s390/include/asm/uaccess.h +++ b/arch/s390/include/asm/uaccess.h | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/uaccess.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999, 2000 |
6 | * Author(s): Hartmut Penner (hp@de.ibm.com), | 4 | * Author(s): Hartmut Penner (hp@de.ibm.com), |
7 | * Martin Schwidefsky (schwidefsky@de.ibm.com) | 5 | * Martin Schwidefsky (schwidefsky@de.ibm.com) |
8 | * | 6 | * |
@@ -381,8 +379,6 @@ clear_user(void __user *to, unsigned long n) | |||
381 | return n; | 379 | return n; |
382 | } | 380 | } |
383 | 381 | ||
384 | extern int memcpy_real(void *, void *, size_t); | ||
385 | extern void memcpy_absolute(void *, void *, size_t); | ||
386 | extern int copy_to_user_real(void __user *dest, void *src, size_t count); | 382 | extern int copy_to_user_real(void __user *dest, void *src, size_t count); |
387 | extern int copy_from_user_real(void *dest, void __user *src, size_t count); | 383 | extern int copy_from_user_real(void *dest, void __user *src, size_t count); |
388 | 384 | ||
diff --git a/arch/s390/include/asm/ucontext.h b/arch/s390/include/asm/ucontext.h index cfb874e66c9a..200e06325c6a 100644 --- a/arch/s390/include/asm/ucontext.h +++ b/arch/s390/include/asm/ucontext.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/ucontext.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/ucontext.h" | 4 | * Derived from "include/asm-i386/ucontext.h" |
diff --git a/arch/s390/include/asm/unistd.h b/arch/s390/include/asm/unistd.h index 8a8008fe7b8f..2e37157ba6a9 100644 --- a/arch/s390/include/asm/unistd.h +++ b/arch/s390/include/asm/unistd.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/unistd.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/unistd.h" | 4 | * Derived from "include/asm-i386/unistd.h" |
diff --git a/arch/s390/include/asm/user.h b/arch/s390/include/asm/user.h index 1b050e35fdc6..6ed1d1886333 100644 --- a/arch/s390/include/asm/user.h +++ b/arch/s390/include/asm/user.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/user.h | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * | 3 | * |
6 | * Derived from "include/asm-i386/usr.h" | 4 | * Derived from "include/asm-i386/usr.h" |
diff --git a/arch/s390/include/asm/vtimer.h b/arch/s390/include/asm/vtimer.h new file mode 100644 index 000000000000..bfe25d513ad2 --- /dev/null +++ b/arch/s390/include/asm/vtimer.h | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | * Copyright IBM Corp. 2003, 2012 | ||
3 | * Virtual CPU timer | ||
4 | * | ||
5 | * Author(s): Jan Glauber <jan.glauber@de.ibm.com> | ||
6 | */ | ||
7 | |||
8 | #ifndef _ASM_S390_TIMER_H | ||
9 | #define _ASM_S390_TIMER_H | ||
10 | |||
11 | #define VTIMER_MAX_SLICE (0x7fffffffffffffffULL) | ||
12 | |||
13 | struct vtimer_list { | ||
14 | struct list_head entry; | ||
15 | u64 expires; | ||
16 | u64 interval; | ||
17 | void (*function)(unsigned long); | ||
18 | unsigned long data; | ||
19 | }; | ||
20 | |||
21 | extern void init_virt_timer(struct vtimer_list *timer); | ||
22 | extern void add_virt_timer(struct vtimer_list *timer); | ||
23 | extern void add_virt_timer_periodic(struct vtimer_list *timer); | ||
24 | extern int mod_virt_timer(struct vtimer_list *timer, u64 expires); | ||
25 | extern int mod_virt_timer_periodic(struct vtimer_list *timer, u64 expires); | ||
26 | extern int del_virt_timer(struct vtimer_list *timer); | ||
27 | |||
28 | extern void init_cpu_vtimer(void); | ||
29 | extern void vtime_init(void); | ||
30 | |||
31 | extern void vtime_stop_cpu(void); | ||
32 | |||
33 | #endif /* _ASM_S390_TIMER_H */ | ||
diff --git a/arch/s390/include/asm/vtoc.h b/arch/s390/include/asm/vtoc.h index 8406a2b3157a..221419de275e 100644 --- a/arch/s390/include/asm/vtoc.h +++ b/arch/s390/include/asm/vtoc.h | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/vtoc.h | ||
3 | * | ||
4 | * This file contains volume label definitions for DASD devices. | 2 | * This file contains volume label definitions for DASD devices. |
5 | * | 3 | * |
6 | * (C) Copyright IBM Corp. 2005 | 4 | * Copyright IBM Corp. 2005 |
7 | * | 5 | * |
8 | * Author(s): Volker Sameske <sameske@de.ibm.com> | 6 | * Author(s): Volker Sameske <sameske@de.ibm.com> |
9 | * | 7 | * |
diff --git a/arch/s390/include/asm/zcrypt.h b/arch/s390/include/asm/zcrypt.h index 00d3bbd44117..e83fc116f5bf 100644 --- a/arch/s390/include/asm/zcrypt.h +++ b/arch/s390/include/asm/zcrypt.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * zcrypt 2.1.0 (user-visible header) | 4 | * zcrypt 2.1.0 (user-visible header) |
5 | * | 5 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 6 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 7 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 8 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * | 9 | * |
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c index 83e6edf5cf17..45ef1a7b08f9 100644 --- a/arch/s390/kernel/asm-offsets.c +++ b/arch/s390/kernel/asm-offsets.c | |||
@@ -9,7 +9,6 @@ | |||
9 | #include <linux/kbuild.h> | 9 | #include <linux/kbuild.h> |
10 | #include <linux/sched.h> | 10 | #include <linux/sched.h> |
11 | #include <asm/cputime.h> | 11 | #include <asm/cputime.h> |
12 | #include <asm/timer.h> | ||
13 | #include <asm/vdso.h> | 12 | #include <asm/vdso.h> |
14 | #include <asm/pgtable.h> | 13 | #include <asm/pgtable.h> |
15 | 14 | ||
@@ -72,11 +71,10 @@ int main(void) | |||
72 | DEFINE(__CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC); | 71 | DEFINE(__CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC); |
73 | BLANK(); | 72 | BLANK(); |
74 | /* idle data offsets */ | 73 | /* idle data offsets */ |
75 | DEFINE(__IDLE_ENTER, offsetof(struct s390_idle_data, idle_enter)); | 74 | DEFINE(__CLOCK_IDLE_ENTER, offsetof(struct s390_idle_data, clock_idle_enter)); |
76 | DEFINE(__IDLE_EXIT, offsetof(struct s390_idle_data, idle_exit)); | 75 | DEFINE(__CLOCK_IDLE_EXIT, offsetof(struct s390_idle_data, clock_idle_exit)); |
77 | /* vtimer queue offsets */ | 76 | DEFINE(__TIMER_IDLE_ENTER, offsetof(struct s390_idle_data, timer_idle_enter)); |
78 | DEFINE(__VQ_IDLE_ENTER, offsetof(struct vtimer_queue, idle_enter)); | 77 | DEFINE(__TIMER_IDLE_EXIT, offsetof(struct s390_idle_data, timer_idle_exit)); |
79 | DEFINE(__VQ_IDLE_EXIT, offsetof(struct vtimer_queue, idle_exit)); | ||
80 | /* lowcore offsets */ | 78 | /* lowcore offsets */ |
81 | DEFINE(__LC_EXT_PARAMS, offsetof(struct _lowcore, ext_params)); | 79 | DEFINE(__LC_EXT_PARAMS, offsetof(struct _lowcore, ext_params)); |
82 | DEFINE(__LC_EXT_CPU_ADDR, offsetof(struct _lowcore, ext_cpu_addr)); | 80 | DEFINE(__LC_EXT_CPU_ADDR, offsetof(struct _lowcore, ext_cpu_addr)); |
@@ -131,6 +129,8 @@ int main(void) | |||
131 | DEFINE(__LC_PANIC_STACK, offsetof(struct _lowcore, panic_stack)); | 129 | DEFINE(__LC_PANIC_STACK, offsetof(struct _lowcore, panic_stack)); |
132 | DEFINE(__LC_RESTART_STACK, offsetof(struct _lowcore, restart_stack)); | 130 | DEFINE(__LC_RESTART_STACK, offsetof(struct _lowcore, restart_stack)); |
133 | DEFINE(__LC_RESTART_FN, offsetof(struct _lowcore, restart_fn)); | 131 | DEFINE(__LC_RESTART_FN, offsetof(struct _lowcore, restart_fn)); |
132 | DEFINE(__LC_RESTART_DATA, offsetof(struct _lowcore, restart_data)); | ||
133 | DEFINE(__LC_RESTART_SOURCE, offsetof(struct _lowcore, restart_source)); | ||
134 | DEFINE(__LC_USER_ASCE, offsetof(struct _lowcore, user_asce)); | 134 | DEFINE(__LC_USER_ASCE, offsetof(struct _lowcore, user_asce)); |
135 | DEFINE(__LC_INT_CLOCK, offsetof(struct _lowcore, int_clock)); | 135 | DEFINE(__LC_INT_CLOCK, offsetof(struct _lowcore, int_clock)); |
136 | DEFINE(__LC_MCCK_CLOCK, offsetof(struct _lowcore, mcck_clock)); | 136 | DEFINE(__LC_MCCK_CLOCK, offsetof(struct _lowcore, mcck_clock)); |
diff --git a/arch/s390/kernel/base.S b/arch/s390/kernel/base.S index c880ff72db44..797a823a2275 100644 --- a/arch/s390/kernel/base.S +++ b/arch/s390/kernel/base.S | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/base.S | 2 | * arch/s390/kernel/base.S |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2006,2007 | 4 | * Copyright IBM Corp. 2006, 2007 |
5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | 5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> |
6 | * Michael Holzheu <holzheu@de.ibm.com> | 6 | * Michael Holzheu <holzheu@de.ibm.com> |
7 | */ | 7 | */ |
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/linkage.h> | 9 | #include <linux/linkage.h> |
10 | #include <asm/asm-offsets.h> | 10 | #include <asm/asm-offsets.h> |
11 | #include <asm/ptrace.h> | 11 | #include <asm/ptrace.h> |
12 | #include <asm/sigp.h> | ||
12 | 13 | ||
13 | #ifdef CONFIG_64BIT | 14 | #ifdef CONFIG_64BIT |
14 | 15 | ||
@@ -100,7 +101,7 @@ ENTRY(diag308_reset) | |||
100 | .Lrestart_part2: | 101 | .Lrestart_part2: |
101 | lhi %r0,0 # Load r0 with zero | 102 | lhi %r0,0 # Load r0 with zero |
102 | lhi %r1,2 # Use mode 2 = ESAME (dump) | 103 | lhi %r1,2 # Use mode 2 = ESAME (dump) |
103 | sigp %r1,%r0,0x12 # Switch to ESAME mode | 104 | sigp %r1,%r0,SIGP_SET_ARCHITECTURE # Switch to ESAME mode |
104 | sam64 # Switch to 64 bit addressing mode | 105 | sam64 # Switch to 64 bit addressing mode |
105 | larl %r4,.Lctlregs # Restore control registers | 106 | larl %r4,.Lctlregs # Restore control registers |
106 | lctlg %c0,%c15,0(%r4) | 107 | lctlg %c0,%c15,0(%r4) |
diff --git a/arch/s390/kernel/bitmap.c b/arch/s390/kernel/bitmap.c index 3ae4757b006a..102da5e23037 100644 --- a/arch/s390/kernel/bitmap.c +++ b/arch/s390/kernel/bitmap.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * Bitmaps for set_bit, clear_bit, test_and_set_bit, ... | 2 | * Bitmaps for set_bit, clear_bit, test_and_set_bit, ... |
3 | * See include/asm/{bitops.h|posix_types.h} for details | 3 | * See include/asm/{bitops.h|posix_types.h} for details |
4 | * | 4 | * |
5 | * Copyright IBM Corp. 1999,2009 | 5 | * Copyright IBM Corp. 1999, 2009 |
6 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>, | 6 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>, |
7 | */ | 7 | */ |
8 | 8 | ||
diff --git a/arch/s390/kernel/compat_exec_domain.c b/arch/s390/kernel/compat_exec_domain.c index 914d49444f92..765fabdada9f 100644 --- a/arch/s390/kernel/compat_exec_domain.c +++ b/arch/s390/kernel/compat_exec_domain.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Support for 32-bit Linux for S390 personality. | 2 | * Support for 32-bit Linux for S390 personality. |
3 | * | 3 | * |
4 | * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | 4 | * Copyright IBM Corp. 2000 |
5 | * Author(s): Gerhard Tonn (ton@de.ibm.com) | 5 | * Author(s): Gerhard Tonn (ton@de.ibm.com) |
6 | * | 6 | * |
7 | * | 7 | * |
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index 65426525d9f2..d1225089a4bb 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390x/kernel/linux32.c | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 2000 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
7 | * Gerhard Tonn (ton@de.ibm.com) | 5 | * Gerhard Tonn (ton@de.ibm.com) |
8 | * Thomas Spatzier (tspat@de.ibm.com) | 6 | * Thomas Spatzier (tspat@de.ibm.com) |
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c index 3c0c19830c37..a1e8a8694bb7 100644 --- a/arch/s390/kernel/compat_signal.c +++ b/arch/s390/kernel/compat_signal.c | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/compat_signal.c | 2 | * Copyright IBM Corp. 2000, 2006 |
3 | * | ||
4 | * Copyright (C) IBM Corp. 2000,2006 | ||
5 | * Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) | 3 | * Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) |
6 | * Gerhard Tonn (ton@de.ibm.com) | 4 | * Gerhard Tonn (ton@de.ibm.com) |
7 | * | 5 | * |
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index ff605a39cf43..e835d6d5b7fd 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/compat_wrapper.S | ||
3 | * wrapper for 31 bit compatible system calls. | 2 | * wrapper for 31 bit compatible system calls. |
4 | * | 3 | * |
5 | * Copyright (C) IBM Corp. 2000,2006 | 4 | * Copyright IBM Corp. 2000, 2006 |
6 | * Author(s): Gerhard Tonn (ton@de.ibm.com), | 5 | * Author(s): Gerhard Tonn (ton@de.ibm.com), |
7 | * Thomas Spatzier (tspat@de.ibm.com) | 6 | * Thomas Spatzier (tspat@de.ibm.com) |
8 | */ | 7 | */ |
diff --git a/arch/s390/kernel/cpcmd.c b/arch/s390/kernel/cpcmd.c index e3dd886e1b32..d7b0c4d27880 100644 --- a/arch/s390/kernel/cpcmd.c +++ b/arch/s390/kernel/cpcmd.c | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/cpcmd.c | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright IBM Corp. 1999,2007 | 3 | * Copyright IBM Corp. 1999, 2007 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
7 | * Christian Borntraeger (cborntra@de.ibm.com), | 5 | * Christian Borntraeger (cborntra@de.ibm.com), |
8 | */ | 6 | */ |
diff --git a/arch/s390/kernel/crash.c b/arch/s390/kernel/crash.c index 8cc7c9fa64f5..3819153de8bd 100644 --- a/arch/s390/kernel/crash.c +++ b/arch/s390/kernel/crash.c | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/crash.c | 2 | * Copyright IBM Corp. 2005 |
3 | * | ||
4 | * (C) Copyright IBM Corp. 2005 | ||
5 | * | 3 | * |
6 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | 4 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> |
7 | * | 5 | * |
diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c index 19e5e9eba546..21be961e8a43 100644 --- a/arch/s390/kernel/debug.c +++ b/arch/s390/kernel/debug.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/debug.c | ||
3 | * S/390 debug facility | 2 | * S/390 debug facility |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 1999, 2012 | 4 | * Copyright IBM Corp. 1999, 2012 |
diff --git a/arch/s390/kernel/dis.c b/arch/s390/kernel/dis.c index 3221c6fca8bb..1f6b428e2762 100644 --- a/arch/s390/kernel/dis.c +++ b/arch/s390/kernel/dis.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/dis.c | ||
3 | * | ||
4 | * Disassemble s390 instructions. | 2 | * Disassemble s390 instructions. |
5 | * | 3 | * |
6 | * Copyright IBM Corp. 2007 | 4 | * Copyright IBM Corp. 2007 |
@@ -613,6 +611,7 @@ static struct insn opcode_b2[] = { | |||
613 | { "sie", 0x14, INSTR_S_RD }, | 611 | { "sie", 0x14, INSTR_S_RD }, |
614 | { "pc", 0x18, INSTR_S_RD }, | 612 | { "pc", 0x18, INSTR_S_RD }, |
615 | { "sac", 0x19, INSTR_S_RD }, | 613 | { "sac", 0x19, INSTR_S_RD }, |
614 | { "servc", 0x20, INSTR_RRE_RR }, | ||
616 | { "cfc", 0x1a, INSTR_S_RD }, | 615 | { "cfc", 0x1a, INSTR_S_RD }, |
617 | { "ipte", 0x21, INSTR_RRE_RR }, | 616 | { "ipte", 0x21, INSTR_RRE_RR }, |
618 | { "ipm", 0x22, INSTR_RRE_R0 }, | 617 | { "ipm", 0x22, INSTR_RRE_R0 }, |
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c index 6684fff17558..bc95a8ebd9cc 100644 --- a/arch/s390/kernel/early.c +++ b/arch/s390/kernel/early.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/early.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007, 2009 | 2 | * Copyright IBM Corp. 2007, 2009 |
5 | * Author(s): Hongjie Yang <hongjie@us.ibm.com>, | 3 | * Author(s): Hongjie Yang <hongjie@us.ibm.com>, |
6 | * Heiko Carstens <heiko.carstens@de.ibm.com> | 4 | * Heiko Carstens <heiko.carstens@de.ibm.com> |
diff --git a/arch/s390/kernel/ebcdic.c b/arch/s390/kernel/ebcdic.c index cc0dc609d738..b971c6be6298 100644 --- a/arch/s390/kernel/ebcdic.c +++ b/arch/s390/kernel/ebcdic.c | |||
@@ -1,10 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/ebcdic.c | ||
3 | * ECBDIC -> ASCII, ASCII -> ECBDIC, | 2 | * ECBDIC -> ASCII, ASCII -> ECBDIC, |
4 | * upper to lower case (EBCDIC) conversion tables. | 3 | * upper to lower case (EBCDIC) conversion tables. |
5 | * | 4 | * |
6 | * S390 version | 5 | * S390 version |
7 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 6 | * Copyright IBM Corp. 1999 |
8 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> | 7 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> |
9 | * Martin Peschke <peschke@fh-brandenburg.de> | 8 | * Martin Peschke <peschke@fh-brandenburg.de> |
10 | */ | 9 | */ |
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index 1ae93b573d7d..870bad6d56fc 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/entry.S | ||
3 | * S390 low-level entry points. | 2 | * S390 low-level entry points. |
4 | * | 3 | * |
5 | * Copyright (C) IBM Corp. 1999,2012 | 4 | * Copyright IBM Corp. 1999, 2012 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 5 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
7 | * Hartmut Penner (hp@de.ibm.com), | 6 | * Hartmut Penner (hp@de.ibm.com), |
8 | * Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com), | 7 | * Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com), |
@@ -18,6 +17,7 @@ | |||
18 | #include <asm/asm-offsets.h> | 17 | #include <asm/asm-offsets.h> |
19 | #include <asm/unistd.h> | 18 | #include <asm/unistd.h> |
20 | #include <asm/page.h> | 19 | #include <asm/page.h> |
20 | #include <asm/sigp.h> | ||
21 | 21 | ||
22 | __PT_R0 = __PT_GPRS | 22 | __PT_R0 = __PT_GPRS |
23 | __PT_R1 = __PT_GPRS + 4 | 23 | __PT_R1 = __PT_GPRS + 4 |
@@ -616,17 +616,13 @@ ext_skip: | |||
616 | * Load idle PSW. The second "half" of this function is in cleanup_idle. | 616 | * Load idle PSW. The second "half" of this function is in cleanup_idle. |
617 | */ | 617 | */ |
618 | ENTRY(psw_idle) | 618 | ENTRY(psw_idle) |
619 | st %r4,__SF_EMPTY(%r15) | 619 | st %r3,__SF_EMPTY(%r15) |
620 | basr %r1,0 | 620 | basr %r1,0 |
621 | la %r1,psw_idle_lpsw+4-.(%r1) | 621 | la %r1,psw_idle_lpsw+4-.(%r1) |
622 | st %r1,__SF_EMPTY+4(%r15) | 622 | st %r1,__SF_EMPTY+4(%r15) |
623 | oi __SF_EMPTY+4(%r15),0x80 | 623 | oi __SF_EMPTY+4(%r15),0x80 |
624 | la %r1,.Lvtimer_max-psw_idle_lpsw-4(%r1) | 624 | stck __CLOCK_IDLE_ENTER(%r2) |
625 | stck __IDLE_ENTER(%r2) | 625 | stpt __TIMER_IDLE_ENTER(%r2) |
626 | ltr %r5,%r5 | ||
627 | stpt __VQ_IDLE_ENTER(%r3) | ||
628 | jz psw_idle_lpsw | ||
629 | spt 0(%r1) | ||
630 | psw_idle_lpsw: | 626 | psw_idle_lpsw: |
631 | lpsw __SF_EMPTY(%r15) | 627 | lpsw __SF_EMPTY(%r15) |
632 | br %r14 | 628 | br %r14 |
@@ -723,15 +719,17 @@ ENTRY(restart_int_handler) | |||
723 | mvc __PT_PSW(8,%r15),__LC_RST_OLD_PSW # store restart old psw | 719 | mvc __PT_PSW(8,%r15),__LC_RST_OLD_PSW # store restart old psw |
724 | ahi %r15,-STACK_FRAME_OVERHEAD # create stack frame on stack | 720 | ahi %r15,-STACK_FRAME_OVERHEAD # create stack frame on stack |
725 | xc 0(STACK_FRAME_OVERHEAD,%r15),0(%r15) | 721 | xc 0(STACK_FRAME_OVERHEAD,%r15),0(%r15) |
726 | lm %r1,%r3,__LC_RESTART_FN # load fn, parm & source cpu | 722 | l %r1,__LC_RESTART_FN # load fn, parm & source cpu |
723 | l %r2,__LC_RESTART_DATA | ||
724 | l %r3,__LC_RESTART_SOURCE | ||
727 | ltr %r3,%r3 # test source cpu address | 725 | ltr %r3,%r3 # test source cpu address |
728 | jm 1f # negative -> skip source stop | 726 | jm 1f # negative -> skip source stop |
729 | 0: sigp %r4,%r3,1 # sigp sense to source cpu | 727 | 0: sigp %r4,%r3,SIGP_SENSE # sigp sense to source cpu |
730 | brc 10,0b # wait for status stored | 728 | brc 10,0b # wait for status stored |
731 | 1: basr %r14,%r1 # call function | 729 | 1: basr %r14,%r1 # call function |
732 | stap __SF_EMPTY(%r15) # store cpu address | 730 | stap __SF_EMPTY(%r15) # store cpu address |
733 | lh %r3,__SF_EMPTY(%r15) | 731 | lh %r3,__SF_EMPTY(%r15) |
734 | 2: sigp %r4,%r3,5 # sigp stop to current cpu | 732 | 2: sigp %r4,%r3,SIGP_STOP # sigp stop to current cpu |
735 | brc 2,2b | 733 | brc 2,2b |
736 | 3: j 3b | 734 | 3: j 3b |
737 | 735 | ||
@@ -883,33 +881,28 @@ cleanup_io_restore_insn: | |||
883 | 881 | ||
884 | cleanup_idle: | 882 | cleanup_idle: |
885 | # copy interrupt clock & cpu timer | 883 | # copy interrupt clock & cpu timer |
886 | mvc __IDLE_EXIT(8,%r2),__LC_INT_CLOCK | 884 | mvc __CLOCK_IDLE_EXIT(8,%r2),__LC_INT_CLOCK |
887 | mvc __VQ_IDLE_EXIT(8,%r3),__LC_ASYNC_ENTER_TIMER | 885 | mvc __TIMER_IDLE_EXIT(8,%r2),__LC_ASYNC_ENTER_TIMER |
888 | chi %r11,__LC_SAVE_AREA_ASYNC | 886 | chi %r11,__LC_SAVE_AREA_ASYNC |
889 | je 0f | 887 | je 0f |
890 | mvc __IDLE_EXIT(8,%r2),__LC_MCCK_CLOCK | 888 | mvc __CLOCK_IDLE_EXIT(8,%r2),__LC_MCCK_CLOCK |
891 | mvc __VQ_IDLE_EXIT(8,%r3),__LC_MCCK_ENTER_TIMER | 889 | mvc __TIMER_IDLE_EXIT(8,%r2),__LC_MCCK_ENTER_TIMER |
892 | 0: # check if stck has been executed | 890 | 0: # check if stck has been executed |
893 | cl %r9,BASED(cleanup_idle_insn) | 891 | cl %r9,BASED(cleanup_idle_insn) |
894 | jhe 1f | 892 | jhe 1f |
895 | mvc __IDLE_ENTER(8,%r2),__IDLE_EXIT(%r2) | 893 | mvc __CLOCK_IDLE_ENTER(8,%r2),__CLOCK_IDLE_EXIT(%r2) |
896 | mvc __VQ_IDLE_ENTER(8,%r3),__VQ_IDLE_EXIT(%r3) | 894 | mvc __TIMER_IDLE_ENTER(8,%r2),__TIMER_IDLE_EXIT(%r3) |
897 | j 2f | 895 | 1: # account system time going idle |
898 | 1: # check if the cpu timer has been reprogrammed | ||
899 | ltr %r5,%r5 | ||
900 | jz 2f | ||
901 | spt __VQ_IDLE_ENTER(%r3) | ||
902 | 2: # account system time going idle | ||
903 | lm %r9,%r10,__LC_STEAL_TIMER | 896 | lm %r9,%r10,__LC_STEAL_TIMER |
904 | ADD64 %r9,%r10,__IDLE_ENTER(%r2) | 897 | ADD64 %r9,%r10,__CLOCK_IDLE_ENTER(%r2) |
905 | SUB64 %r9,%r10,__LC_LAST_UPDATE_CLOCK | 898 | SUB64 %r9,%r10,__LC_LAST_UPDATE_CLOCK |
906 | stm %r9,%r10,__LC_STEAL_TIMER | 899 | stm %r9,%r10,__LC_STEAL_TIMER |
907 | mvc __LC_LAST_UPDATE_CLOCK(8),__IDLE_EXIT(%r2) | 900 | mvc __LC_LAST_UPDATE_CLOCK(8),__CLOCK_IDLE_EXIT(%r2) |
908 | lm %r9,%r10,__LC_SYSTEM_TIMER | 901 | lm %r9,%r10,__LC_SYSTEM_TIMER |
909 | ADD64 %r9,%r10,__LC_LAST_UPDATE_TIMER | 902 | ADD64 %r9,%r10,__LC_LAST_UPDATE_TIMER |
910 | SUB64 %r9,%r10,__VQ_IDLE_ENTER(%r3) | 903 | SUB64 %r9,%r10,__TIMER_IDLE_ENTER(%r2) |
911 | stm %r9,%r10,__LC_SYSTEM_TIMER | 904 | stm %r9,%r10,__LC_SYSTEM_TIMER |
912 | mvc __LC_LAST_UPDATE_TIMER(8),__VQ_IDLE_EXIT(%r3) | 905 | mvc __LC_LAST_UPDATE_TIMER(8),__TIMER_IDLE_EXIT(%r2) |
913 | # prepare return psw | 906 | # prepare return psw |
914 | n %r8,BASED(cleanup_idle_wait) # clear wait state bit | 907 | n %r8,BASED(cleanup_idle_wait) # clear wait state bit |
915 | l %r9,24(%r11) # return from psw_idle | 908 | l %r9,24(%r11) # return from psw_idle |
diff --git a/arch/s390/kernel/entry.h b/arch/s390/kernel/entry.h index f66a229ab0b3..a5f4dc42a5db 100644 --- a/arch/s390/kernel/entry.h +++ b/arch/s390/kernel/entry.h | |||
@@ -5,7 +5,6 @@ | |||
5 | #include <linux/signal.h> | 5 | #include <linux/signal.h> |
6 | #include <asm/ptrace.h> | 6 | #include <asm/ptrace.h> |
7 | #include <asm/cputime.h> | 7 | #include <asm/cputime.h> |
8 | #include <asm/timer.h> | ||
9 | 8 | ||
10 | extern void (*pgm_check_table[128])(struct pt_regs *); | 9 | extern void (*pgm_check_table[128])(struct pt_regs *); |
11 | extern void *restart_stack; | 10 | extern void *restart_stack; |
@@ -17,8 +16,7 @@ void io_int_handler(void); | |||
17 | void mcck_int_handler(void); | 16 | void mcck_int_handler(void); |
18 | void restart_int_handler(void); | 17 | void restart_int_handler(void); |
19 | void restart_call_handler(void); | 18 | void restart_call_handler(void); |
20 | void psw_idle(struct s390_idle_data *, struct vtimer_queue *, | 19 | void psw_idle(struct s390_idle_data *, unsigned long); |
21 | unsigned long, int); | ||
22 | 20 | ||
23 | asmlinkage long do_syscall_trace_enter(struct pt_regs *regs); | 21 | asmlinkage long do_syscall_trace_enter(struct pt_regs *regs); |
24 | asmlinkage void do_syscall_trace_exit(struct pt_regs *regs); | 22 | asmlinkage void do_syscall_trace_exit(struct pt_regs *regs); |
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 229fe1d07749..349b7eeb348a 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/entry64.S | ||
3 | * S390 low-level entry points. | 2 | * S390 low-level entry points. |
4 | * | 3 | * |
5 | * Copyright (C) IBM Corp. 1999,2012 | 4 | * Copyright IBM Corp. 1999, 2012 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 5 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
7 | * Hartmut Penner (hp@de.ibm.com), | 6 | * Hartmut Penner (hp@de.ibm.com), |
8 | * Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com), | 7 | * Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com), |
@@ -18,6 +17,7 @@ | |||
18 | #include <asm/asm-offsets.h> | 17 | #include <asm/asm-offsets.h> |
19 | #include <asm/unistd.h> | 18 | #include <asm/unistd.h> |
20 | #include <asm/page.h> | 19 | #include <asm/page.h> |
20 | #include <asm/sigp.h> | ||
21 | 21 | ||
22 | __PT_R0 = __PT_GPRS | 22 | __PT_R0 = __PT_GPRS |
23 | __PT_R1 = __PT_GPRS + 8 | 23 | __PT_R1 = __PT_GPRS + 8 |
@@ -642,15 +642,11 @@ ext_skip: | |||
642 | * Load idle PSW. The second "half" of this function is in cleanup_idle. | 642 | * Load idle PSW. The second "half" of this function is in cleanup_idle. |
643 | */ | 643 | */ |
644 | ENTRY(psw_idle) | 644 | ENTRY(psw_idle) |
645 | stg %r4,__SF_EMPTY(%r15) | 645 | stg %r3,__SF_EMPTY(%r15) |
646 | larl %r1,psw_idle_lpsw+4 | 646 | larl %r1,psw_idle_lpsw+4 |
647 | stg %r1,__SF_EMPTY+8(%r15) | 647 | stg %r1,__SF_EMPTY+8(%r15) |
648 | larl %r1,.Lvtimer_max | 648 | STCK __CLOCK_IDLE_ENTER(%r2) |
649 | STCK __IDLE_ENTER(%r2) | 649 | stpt __TIMER_IDLE_ENTER(%r2) |
650 | ltr %r5,%r5 | ||
651 | stpt __VQ_IDLE_ENTER(%r3) | ||
652 | jz psw_idle_lpsw | ||
653 | spt 0(%r1) | ||
654 | psw_idle_lpsw: | 650 | psw_idle_lpsw: |
655 | lpswe __SF_EMPTY(%r15) | 651 | lpswe __SF_EMPTY(%r15) |
656 | br %r14 | 652 | br %r14 |
@@ -750,15 +746,17 @@ ENTRY(restart_int_handler) | |||
750 | mvc __PT_PSW(16,%r15),__LC_RST_OLD_PSW # store restart old psw | 746 | mvc __PT_PSW(16,%r15),__LC_RST_OLD_PSW # store restart old psw |
751 | aghi %r15,-STACK_FRAME_OVERHEAD # create stack frame on stack | 747 | aghi %r15,-STACK_FRAME_OVERHEAD # create stack frame on stack |
752 | xc 0(STACK_FRAME_OVERHEAD,%r15),0(%r15) | 748 | xc 0(STACK_FRAME_OVERHEAD,%r15),0(%r15) |
753 | lmg %r1,%r3,__LC_RESTART_FN # load fn, parm & source cpu | 749 | lg %r1,__LC_RESTART_FN # load fn, parm & source cpu |
750 | lg %r2,__LC_RESTART_DATA | ||
751 | lg %r3,__LC_RESTART_SOURCE | ||
754 | ltgr %r3,%r3 # test source cpu address | 752 | ltgr %r3,%r3 # test source cpu address |
755 | jm 1f # negative -> skip source stop | 753 | jm 1f # negative -> skip source stop |
756 | 0: sigp %r4,%r3,1 # sigp sense to source cpu | 754 | 0: sigp %r4,%r3,SIGP_SENSE # sigp sense to source cpu |
757 | brc 10,0b # wait for status stored | 755 | brc 10,0b # wait for status stored |
758 | 1: basr %r14,%r1 # call function | 756 | 1: basr %r14,%r1 # call function |
759 | stap __SF_EMPTY(%r15) # store cpu address | 757 | stap __SF_EMPTY(%r15) # store cpu address |
760 | llgh %r3,__SF_EMPTY(%r15) | 758 | llgh %r3,__SF_EMPTY(%r15) |
761 | 2: sigp %r4,%r3,5 # sigp stop to current cpu | 759 | 2: sigp %r4,%r3,SIGP_STOP # sigp stop to current cpu |
762 | brc 2,2b | 760 | brc 2,2b |
763 | 3: j 3b | 761 | 3: j 3b |
764 | 762 | ||
@@ -916,33 +914,28 @@ cleanup_io_restore_insn: | |||
916 | 914 | ||
917 | cleanup_idle: | 915 | cleanup_idle: |
918 | # copy interrupt clock & cpu timer | 916 | # copy interrupt clock & cpu timer |
919 | mvc __IDLE_EXIT(8,%r2),__LC_INT_CLOCK | 917 | mvc __CLOCK_IDLE_EXIT(8,%r2),__LC_INT_CLOCK |
920 | mvc __VQ_IDLE_EXIT(8,%r3),__LC_ASYNC_ENTER_TIMER | 918 | mvc __TIMER_IDLE_EXIT(8,%r2),__LC_ASYNC_ENTER_TIMER |
921 | cghi %r11,__LC_SAVE_AREA_ASYNC | 919 | cghi %r11,__LC_SAVE_AREA_ASYNC |
922 | je 0f | 920 | je 0f |
923 | mvc __IDLE_EXIT(8,%r2),__LC_MCCK_CLOCK | 921 | mvc __CLOCK_IDLE_EXIT(8,%r2),__LC_MCCK_CLOCK |
924 | mvc __VQ_IDLE_EXIT(8,%r3),__LC_MCCK_ENTER_TIMER | 922 | mvc __TIMER_IDLE_EXIT(8,%r2),__LC_MCCK_ENTER_TIMER |
925 | 0: # check if stck & stpt have been executed | 923 | 0: # check if stck & stpt have been executed |
926 | clg %r9,BASED(cleanup_idle_insn) | 924 | clg %r9,BASED(cleanup_idle_insn) |
927 | jhe 1f | 925 | jhe 1f |
928 | mvc __IDLE_ENTER(8,%r2),__IDLE_EXIT(%r2) | 926 | mvc __CLOCK_IDLE_ENTER(8,%r2),__CLOCK_IDLE_EXIT(%r2) |
929 | mvc __VQ_IDLE_ENTER(8,%r3),__VQ_IDLE_EXIT(%r3) | 927 | mvc __TIMER_IDLE_ENTER(8,%r2),__TIMER_IDLE_EXIT(%r2) |
930 | j 2f | 928 | 1: # account system time going idle |
931 | 1: # check if the cpu timer has been reprogrammed | ||
932 | ltr %r5,%r5 | ||
933 | jz 2f | ||
934 | spt __VQ_IDLE_ENTER(%r3) | ||
935 | 2: # account system time going idle | ||
936 | lg %r9,__LC_STEAL_TIMER | 929 | lg %r9,__LC_STEAL_TIMER |
937 | alg %r9,__IDLE_ENTER(%r2) | 930 | alg %r9,__CLOCK_IDLE_ENTER(%r2) |
938 | slg %r9,__LC_LAST_UPDATE_CLOCK | 931 | slg %r9,__LC_LAST_UPDATE_CLOCK |
939 | stg %r9,__LC_STEAL_TIMER | 932 | stg %r9,__LC_STEAL_TIMER |
940 | mvc __LC_LAST_UPDATE_CLOCK(8),__IDLE_EXIT(%r2) | 933 | mvc __LC_LAST_UPDATE_CLOCK(8),__CLOCK_IDLE_EXIT(%r2) |
941 | lg %r9,__LC_SYSTEM_TIMER | 934 | lg %r9,__LC_SYSTEM_TIMER |
942 | alg %r9,__LC_LAST_UPDATE_TIMER | 935 | alg %r9,__LC_LAST_UPDATE_TIMER |
943 | slg %r9,__VQ_IDLE_ENTER(%r3) | 936 | slg %r9,__TIMER_IDLE_ENTER(%r2) |
944 | stg %r9,__LC_SYSTEM_TIMER | 937 | stg %r9,__LC_SYSTEM_TIMER |
945 | mvc __LC_LAST_UPDATE_TIMER(8),__VQ_IDLE_EXIT(%r3) | 938 | mvc __LC_LAST_UPDATE_TIMER(8),__TIMER_IDLE_EXIT(%r2) |
946 | # prepare return psw | 939 | # prepare return psw |
947 | nihh %r8,0xfffd # clear wait state bit | 940 | nihh %r8,0xfffd # clear wait state bit |
948 | lg %r9,48(%r11) # return from psw_idle | 941 | lg %r9,48(%r11) # return from psw_idle |
@@ -958,8 +951,6 @@ cleanup_idle_insn: | |||
958 | .quad __critical_start | 951 | .quad __critical_start |
959 | .Lcritical_length: | 952 | .Lcritical_length: |
960 | .quad __critical_end - __critical_start | 953 | .quad __critical_end - __critical_start |
961 | .Lvtimer_max: | ||
962 | .quad 0x7fffffffffffffff | ||
963 | 954 | ||
964 | 955 | ||
965 | #if defined(CONFIG_KVM) || defined(CONFIG_KVM_MODULE) | 956 | #if defined(CONFIG_KVM) || defined(CONFIG_KVM_MODULE) |
@@ -974,7 +965,6 @@ ENTRY(sie64a) | |||
974 | stg %r3,__SF_EMPTY+8(%r15) # save guest register save area | 965 | stg %r3,__SF_EMPTY+8(%r15) # save guest register save area |
975 | xc __SF_EMPTY+16(8,%r15),__SF_EMPTY+16(%r15) # host id == 0 | 966 | xc __SF_EMPTY+16(8,%r15),__SF_EMPTY+16(%r15) # host id == 0 |
976 | lmg %r0,%r13,0(%r3) # load guest gprs 0-13 | 967 | lmg %r0,%r13,0(%r3) # load guest gprs 0-13 |
977 | lg %r14,__LC_THREAD_INFO # pointer thread_info struct | ||
978 | sie_loop: | 968 | sie_loop: |
979 | lg %r14,__LC_THREAD_INFO # pointer thread_info struct | 969 | lg %r14,__LC_THREAD_INFO # pointer thread_info struct |
980 | tm __TI_flags+7(%r14),_TIF_EXIT_SIE | 970 | tm __TI_flags+7(%r14),_TIF_EXIT_SIE |
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S index 4939d15375aa..805b6686b641 100644 --- a/arch/s390/kernel/head.S +++ b/arch/s390/kernel/head.S | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 1999,2010 | 2 | * Copyright IBM Corp. 1999, 2010 |
3 | * | 3 | * |
4 | * Author(s): Hartmut Penner <hp@de.ibm.com> | 4 | * Author(s): Hartmut Penner <hp@de.ibm.com> |
5 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 5 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
diff --git a/arch/s390/kernel/head31.S b/arch/s390/kernel/head31.S index d3f1ab7d90ad..a1372ae24ae1 100644 --- a/arch/s390/kernel/head31.S +++ b/arch/s390/kernel/head31.S | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/head31.S | 2 | * Copyright IBM Corp. 2005, 2010 |
3 | * | ||
4 | * Copyright (C) IBM Corp. 2005,2010 | ||
5 | * | 3 | * |
6 | * Author(s): Hartmut Penner <hp@de.ibm.com> | 4 | * Author(s): Hartmut Penner <hp@de.ibm.com> |
7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 5 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
diff --git a/arch/s390/kernel/head64.S b/arch/s390/kernel/head64.S index 99348c0eaa41..c108af28bbe8 100644 --- a/arch/s390/kernel/head64.S +++ b/arch/s390/kernel/head64.S | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/head64.S | 2 | * Copyright IBM Corp. 1999, 2010 |
3 | * | ||
4 | * Copyright (C) IBM Corp. 1999,2010 | ||
5 | * | 3 | * |
6 | * Author(s): Hartmut Penner <hp@de.ibm.com> | 4 | * Author(s): Hartmut Penner <hp@de.ibm.com> |
7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 5 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
diff --git a/arch/s390/kernel/head_kdump.S b/arch/s390/kernel/head_kdump.S index 796c976b5fdc..acaaaf4b7055 100644 --- a/arch/s390/kernel/head_kdump.S +++ b/arch/s390/kernel/head_kdump.S | |||
@@ -5,6 +5,8 @@ | |||
5 | * Author(s): Michael Holzheu <holzheu@linux.vnet.ibm.com> | 5 | * Author(s): Michael Holzheu <holzheu@linux.vnet.ibm.com> |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <asm/sigp.h> | ||
9 | |||
8 | #define DATAMOVER_ADDR 0x4000 | 10 | #define DATAMOVER_ADDR 0x4000 |
9 | #define COPY_PAGE_ADDR 0x6000 | 11 | #define COPY_PAGE_ADDR 0x6000 |
10 | 12 | ||
@@ -19,7 +21,7 @@ | |||
19 | .align 2 | 21 | .align 2 |
20 | .Lep_startup_kdump: | 22 | .Lep_startup_kdump: |
21 | lhi %r1,2 # mode 2 = esame (dump) | 23 | lhi %r1,2 # mode 2 = esame (dump) |
22 | sigp %r1,%r0,0x12 # Switch to esame mode | 24 | sigp %r1,%r0,SIGP_SET_ARCHITECTURE # Switch to esame mode |
23 | sam64 # Switch to 64 bit addressing | 25 | sam64 # Switch to 64 bit addressing |
24 | basr %r13,0 | 26 | basr %r13,0 |
25 | .Lbase: | 27 | .Lbase: |
@@ -88,7 +90,7 @@ startup_kdump_relocated: | |||
88 | sam31 # Switch to 31 bit addr mode | 90 | sam31 # Switch to 31 bit addr mode |
89 | sr %r1,%r1 # Erase register r1 | 91 | sr %r1,%r1 # Erase register r1 |
90 | sr %r2,%r2 # Erase register r2 | 92 | sr %r2,%r2 # Erase register r2 |
91 | sigp %r1,%r2,0x12 # Switch to 31 bit arch mode | 93 | sigp %r1,%r2,SIGP_SET_ARCHITECTURE # Switch to 31 bit arch mode |
92 | lpsw 0 # Start new kernel... | 94 | lpsw 0 # Start new kernel... |
93 | .align 8 | 95 | .align 8 |
94 | .Lrestart_psw: | 96 | .Lrestart_psw: |
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c index 2f6cfd460cb6..e64d141555ce 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/ipl.c | ||
3 | * ipl/reipl/dump support for Linux on s390. | 2 | * ipl/reipl/dump support for Linux on s390. |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 2005,2012 | 4 | * Copyright IBM Corp. 2005, 2012 |
6 | * Author(s): Michael Holzheu <holzheu@de.ibm.com> | 5 | * Author(s): Michael Holzheu <holzheu@de.ibm.com> |
7 | * Heiko Carstens <heiko.carstens@de.ibm.com> | 6 | * Heiko Carstens <heiko.carstens@de.ibm.com> |
8 | * Volker Sameske <sameske@de.ibm.com> | 7 | * Volker Sameske <sameske@de.ibm.com> |
@@ -1528,15 +1527,12 @@ static struct shutdown_action __refdata dump_action = { | |||
1528 | 1527 | ||
1529 | static void dump_reipl_run(struct shutdown_trigger *trigger) | 1528 | static void dump_reipl_run(struct shutdown_trigger *trigger) |
1530 | { | 1529 | { |
1531 | struct { | 1530 | unsigned long ipib = (unsigned long) reipl_block_actual; |
1532 | void *addr; | 1531 | unsigned int csum; |
1533 | __u32 csum; | ||
1534 | } __packed ipib; | ||
1535 | 1532 | ||
1536 | ipib.csum = csum_partial(reipl_block_actual, | 1533 | csum = csum_partial(reipl_block_actual, reipl_block_actual->hdr.len, 0); |
1537 | reipl_block_actual->hdr.len, 0); | 1534 | mem_assign_absolute(S390_lowcore.ipib, ipib); |
1538 | ipib.addr = reipl_block_actual; | 1535 | mem_assign_absolute(S390_lowcore.ipib_checksum, csum); |
1539 | memcpy_absolute(&S390_lowcore.ipib, &ipib, sizeof(ipib)); | ||
1540 | dump_run(trigger); | 1536 | dump_run(trigger); |
1541 | } | 1537 | } |
1542 | 1538 | ||
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c index b4f4a7133fa1..dd7630d8aab7 100644 --- a/arch/s390/kernel/irq.c +++ b/arch/s390/kernel/irq.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 2004,2011 | 2 | * Copyright IBM Corp. 2004, 2011 |
3 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>, | 3 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>, |
4 | * Holger Smolinski <Holger.Smolinski@de.ibm.com>, | 4 | * Holger Smolinski <Holger.Smolinski@de.ibm.com>, |
5 | * Thomas Spatzier <tspat@de.ibm.com>, | 5 | * Thomas Spatzier <tspat@de.ibm.com>, |
diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c index 64b761aef004..8aa634f5944b 100644 --- a/arch/s390/kernel/kprobes.c +++ b/arch/s390/kernel/kprobes.c | |||
@@ -15,7 +15,7 @@ | |||
15 | * along with this program; if not, write to the Free Software | 15 | * along with this program; if not, write to the Free Software |
16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
17 | * | 17 | * |
18 | * Copyright (C) IBM Corporation, 2002, 2006 | 18 | * Copyright IBM Corp. 2002, 2006 |
19 | * | 19 | * |
20 | * s390 port, used ppc64 as template. Mike Grundy <grundym@us.ibm.com> | 20 | * s390 port, used ppc64 as template. Mike Grundy <grundym@us.ibm.com> |
21 | */ | 21 | */ |
diff --git a/arch/s390/kernel/lgr.c b/arch/s390/kernel/lgr.c index 87f080b17af1..eca94e74d19a 100644 --- a/arch/s390/kernel/lgr.c +++ b/arch/s390/kernel/lgr.c | |||
@@ -45,7 +45,7 @@ struct lgr_info { | |||
45 | /* | 45 | /* |
46 | * LGR globals | 46 | * LGR globals |
47 | */ | 47 | */ |
48 | static void *lgr_page; | 48 | static char lgr_page[PAGE_SIZE] __aligned(PAGE_SIZE); |
49 | static struct lgr_info lgr_info_last; | 49 | static struct lgr_info lgr_info_last; |
50 | static struct lgr_info lgr_info_cur; | 50 | static struct lgr_info lgr_info_cur; |
51 | static struct debug_info *lgr_dbf; | 51 | static struct debug_info *lgr_dbf; |
@@ -74,7 +74,7 @@ static void cpascii(char *dst, char *src, int size) | |||
74 | */ | 74 | */ |
75 | static void lgr_stsi_1_1_1(struct lgr_info *lgr_info) | 75 | static void lgr_stsi_1_1_1(struct lgr_info *lgr_info) |
76 | { | 76 | { |
77 | struct sysinfo_1_1_1 *si = lgr_page; | 77 | struct sysinfo_1_1_1 *si = (void *) lgr_page; |
78 | 78 | ||
79 | if (stsi(si, 1, 1, 1) == -ENOSYS) | 79 | if (stsi(si, 1, 1, 1) == -ENOSYS) |
80 | return; | 80 | return; |
@@ -91,7 +91,7 @@ static void lgr_stsi_1_1_1(struct lgr_info *lgr_info) | |||
91 | */ | 91 | */ |
92 | static void lgr_stsi_2_2_2(struct lgr_info *lgr_info) | 92 | static void lgr_stsi_2_2_2(struct lgr_info *lgr_info) |
93 | { | 93 | { |
94 | struct sysinfo_2_2_2 *si = lgr_page; | 94 | struct sysinfo_2_2_2 *si = (void *) lgr_page; |
95 | 95 | ||
96 | if (stsi(si, 2, 2, 2) == -ENOSYS) | 96 | if (stsi(si, 2, 2, 2) == -ENOSYS) |
97 | return; | 97 | return; |
@@ -105,7 +105,7 @@ static void lgr_stsi_2_2_2(struct lgr_info *lgr_info) | |||
105 | */ | 105 | */ |
106 | static void lgr_stsi_3_2_2(struct lgr_info *lgr_info) | 106 | static void lgr_stsi_3_2_2(struct lgr_info *lgr_info) |
107 | { | 107 | { |
108 | struct sysinfo_3_2_2 *si = lgr_page; | 108 | struct sysinfo_3_2_2 *si = (void *) lgr_page; |
109 | int i; | 109 | int i; |
110 | 110 | ||
111 | if (stsi(si, 3, 2, 2) == -ENOSYS) | 111 | if (stsi(si, 3, 2, 2) == -ENOSYS) |
@@ -183,14 +183,9 @@ static void lgr_timer_set(void) | |||
183 | */ | 183 | */ |
184 | static int __init lgr_init(void) | 184 | static int __init lgr_init(void) |
185 | { | 185 | { |
186 | lgr_page = (void *) __get_free_pages(GFP_KERNEL, 0); | ||
187 | if (!lgr_page) | ||
188 | return -ENOMEM; | ||
189 | lgr_dbf = debug_register("lgr", 1, 1, sizeof(struct lgr_info)); | 186 | lgr_dbf = debug_register("lgr", 1, 1, sizeof(struct lgr_info)); |
190 | if (!lgr_dbf) { | 187 | if (!lgr_dbf) |
191 | free_page((unsigned long) lgr_page); | ||
192 | return -ENOMEM; | 188 | return -ENOMEM; |
193 | } | ||
194 | debug_register_view(lgr_dbf, &debug_hex_ascii_view); | 189 | debug_register_view(lgr_dbf, &debug_hex_ascii_view); |
195 | lgr_info_get(&lgr_info_last); | 190 | lgr_info_get(&lgr_info_last); |
196 | debug_event(lgr_dbf, 1, &lgr_info_last, sizeof(lgr_info_last)); | 191 | debug_event(lgr_dbf, 1, &lgr_info_last, sizeof(lgr_info_last)); |
diff --git a/arch/s390/kernel/machine_kexec.c b/arch/s390/kernel/machine_kexec.c index cdacf8f91b2d..493304bdf1c7 100644 --- a/arch/s390/kernel/machine_kexec.c +++ b/arch/s390/kernel/machine_kexec.c | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/machine_kexec.c | 2 | * Copyright IBM Corp. 2005, 2011 |
3 | * | ||
4 | * Copyright IBM Corp. 2005,2011 | ||
5 | * | 3 | * |
6 | * Author(s): Rolf Adelsberger, | 4 | * Author(s): Rolf Adelsberger, |
7 | * Heiko Carstens <heiko.carstens@de.ibm.com> | 5 | * Heiko Carstens <heiko.carstens@de.ibm.com> |
diff --git a/arch/s390/kernel/mcount.S b/arch/s390/kernel/mcount.S index 7e2c38ba1373..4567ce20d900 100644 --- a/arch/s390/kernel/mcount.S +++ b/arch/s390/kernel/mcount.S | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 2008,2009 | 2 | * Copyright IBM Corp. 2008, 2009 |
3 | * | 3 | * |
4 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>, | 4 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>, |
5 | * | 5 | * |
diff --git a/arch/s390/kernel/mcount64.S b/arch/s390/kernel/mcount64.S index f70cadec68fc..11332193db30 100644 --- a/arch/s390/kernel/mcount64.S +++ b/arch/s390/kernel/mcount64.S | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 2008,2009 | 2 | * Copyright IBM Corp. 2008, 2009 |
3 | * | 3 | * |
4 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>, | 4 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>, |
5 | * | 5 | * |
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c index dfcb3436bad0..46412b1d7e1e 100644 --- a/arch/s390/kernel/module.c +++ b/arch/s390/kernel/module.c | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/module.c - Kernel module help for s390. | 2 | * Kernel module help for s390. |
3 | * | 3 | * |
4 | * S390 version | 4 | * S390 version |
5 | * Copyright (C) 2002, 2003 IBM Deutschland Entwicklung GmbH, | 5 | * Copyright IBM Corp. 2002, 2003 |
6 | * IBM Corporation | ||
7 | * Author(s): Arnd Bergmann (arndb@de.ibm.com) | 6 | * Author(s): Arnd Bergmann (arndb@de.ibm.com) |
8 | * Martin Schwidefsky (schwidefsky@de.ibm.com) | 7 | * Martin Schwidefsky (schwidefsky@de.ibm.com) |
9 | * | 8 | * |
diff --git a/arch/s390/kernel/nmi.c b/arch/s390/kernel/nmi.c index 8c372ca61350..a6daa5c5cdb0 100644 --- a/arch/s390/kernel/nmi.c +++ b/arch/s390/kernel/nmi.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Machine check handler | 2 | * Machine check handler |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2000,2009 | 4 | * Copyright IBM Corp. 2000, 2009 |
5 | * Author(s): Ingo Adlung <adlung@de.ibm.com>, | 5 | * Author(s): Ingo Adlung <adlung@de.ibm.com>, |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, | 6 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, |
7 | * Cornelia Huck <cornelia.huck@de.ibm.com>, | 7 | * Cornelia Huck <cornelia.huck@de.ibm.com>, |
diff --git a/arch/s390/kernel/os_info.c b/arch/s390/kernel/os_info.c index 95fa5ac6c4ce..46480d81df00 100644 --- a/arch/s390/kernel/os_info.c +++ b/arch/s390/kernel/os_info.c | |||
@@ -60,7 +60,7 @@ void __init os_info_init(void) | |||
60 | os_info.version_minor = OS_INFO_VERSION_MINOR; | 60 | os_info.version_minor = OS_INFO_VERSION_MINOR; |
61 | os_info.magic = OS_INFO_MAGIC; | 61 | os_info.magic = OS_INFO_MAGIC; |
62 | os_info.csum = os_info_csum(&os_info); | 62 | os_info.csum = os_info_csum(&os_info); |
63 | memcpy_absolute(&S390_lowcore.os_info, &ptr, sizeof(ptr)); | 63 | mem_assign_absolute(S390_lowcore.os_info, (unsigned long) ptr); |
64 | } | 64 | } |
65 | 65 | ||
66 | #ifdef CONFIG_CRASH_DUMP | 66 | #ifdef CONFIG_CRASH_DUMP |
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index 60055cefdd04..733175373a4c 100644 --- a/arch/s390/kernel/process.c +++ b/arch/s390/kernel/process.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * This file handles the architecture dependent parts of process handling. | 2 | * This file handles the architecture dependent parts of process handling. |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 1999,2009 | 4 | * Copyright IBM Corp. 1999, 2009 |
5 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>, | 5 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>, |
6 | * Hartmut Penner <hp@de.ibm.com>, | 6 | * Hartmut Penner <hp@de.ibm.com>, |
7 | * Denis Joseph Barrow, | 7 | * Denis Joseph Barrow, |
@@ -25,8 +25,8 @@ | |||
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <asm/io.h> | 26 | #include <asm/io.h> |
27 | #include <asm/processor.h> | 27 | #include <asm/processor.h> |
28 | #include <asm/vtimer.h> | ||
28 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
29 | #include <asm/timer.h> | ||
30 | #include <asm/nmi.h> | 30 | #include <asm/nmi.h> |
31 | #include <asm/smp.h> | 31 | #include <asm/smp.h> |
32 | #include <asm/switch_to.h> | 32 | #include <asm/switch_to.h> |
diff --git a/arch/s390/kernel/processor.c b/arch/s390/kernel/processor.c index 6e0073e43f54..572d4c9cb33b 100644 --- a/arch/s390/kernel/processor.c +++ b/arch/s390/kernel/processor.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/processor.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2008 | 2 | * Copyright IBM Corp. 2008 |
5 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 3 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
6 | */ | 4 | */ |
@@ -25,13 +23,15 @@ static DEFINE_PER_CPU(struct cpuid, cpu_id); | |||
25 | */ | 23 | */ |
26 | void __cpuinit cpu_init(void) | 24 | void __cpuinit cpu_init(void) |
27 | { | 25 | { |
28 | struct cpuid *id = &per_cpu(cpu_id, smp_processor_id()); | 26 | struct s390_idle_data *idle = &__get_cpu_var(s390_idle); |
27 | struct cpuid *id = &__get_cpu_var(cpu_id); | ||
29 | 28 | ||
30 | get_cpu_id(id); | 29 | get_cpu_id(id); |
31 | atomic_inc(&init_mm.mm_count); | 30 | atomic_inc(&init_mm.mm_count); |
32 | current->active_mm = &init_mm; | 31 | current->active_mm = &init_mm; |
33 | BUG_ON(current->mm); | 32 | BUG_ON(current->mm); |
34 | enter_lazy_tlb(&init_mm, current); | 33 | enter_lazy_tlb(&init_mm, current); |
34 | memset(idle, 0, sizeof(*idle)); | ||
35 | } | 35 | } |
36 | 36 | ||
37 | /* | 37 | /* |
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c index 4993e689b2c2..f4eb37680b91 100644 --- a/arch/s390/kernel/ptrace.c +++ b/arch/s390/kernel/ptrace.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Ptrace user space interface. | 2 | * Ptrace user space interface. |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 1999,2010 | 4 | * Copyright IBM Corp. 1999, 2010 |
5 | * Author(s): Denis Joseph Barrow | 5 | * Author(s): Denis Joseph Barrow |
6 | * Martin Schwidefsky (schwidefsky@de.ibm.com) | 6 | * Martin Schwidefsky (schwidefsky@de.ibm.com) |
7 | */ | 7 | */ |
diff --git a/arch/s390/kernel/reipl.S b/arch/s390/kernel/reipl.S index ad67c214be04..dd8016b0477e 100644 --- a/arch/s390/kernel/reipl.S +++ b/arch/s390/kernel/reipl.S | |||
@@ -1,13 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/reipl.S | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 2000 |
6 | * Author(s): Holger Smolinski (Holger.Smolinski@de.ibm.com) | 4 | * Author(s): Holger Smolinski (Holger.Smolinski@de.ibm.com) |
7 | */ | 5 | */ |
8 | 6 | ||
9 | #include <linux/linkage.h> | 7 | #include <linux/linkage.h> |
10 | #include <asm/asm-offsets.h> | 8 | #include <asm/asm-offsets.h> |
9 | #include <asm/sigp.h> | ||
11 | 10 | ||
12 | # | 11 | # |
13 | # store_status: Empty implementation until kdump is supported on 31 bit | 12 | # store_status: Empty implementation until kdump is supported on 31 bit |
@@ -60,7 +59,7 @@ ENTRY(do_reipl_asm) | |||
60 | bas %r14,.Ldisab-.Lpg0(%r13) | 59 | bas %r14,.Ldisab-.Lpg0(%r13) |
61 | .L003: st %r1,__LC_SUBCHANNEL_ID | 60 | .L003: st %r1,__LC_SUBCHANNEL_ID |
62 | lpsw 0 | 61 | lpsw 0 |
63 | sigp 0,0,0(6) | 62 | sigp 0,0,SIGP_RESTART |
64 | .Ldisab: st %r14,.Ldispsw+4-.Lpg0(%r13) | 63 | .Ldisab: st %r14,.Ldispsw+4-.Lpg0(%r13) |
65 | lpsw .Ldispsw-.Lpg0(%r13) | 64 | lpsw .Ldispsw-.Lpg0(%r13) |
66 | .align 8 | 65 | .align 8 |
diff --git a/arch/s390/kernel/reipl64.S b/arch/s390/kernel/reipl64.S index 36b32658fb24..dc3b1273c4dc 100644 --- a/arch/s390/kernel/reipl64.S +++ b/arch/s390/kernel/reipl64.S | |||
@@ -1,11 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp 2000,2011 | 2 | * Copyright IBM Corp 2000, 2011 |
3 | * Author(s): Holger Smolinski <Holger.Smolinski@de.ibm.com>, | 3 | * Author(s): Holger Smolinski <Holger.Smolinski@de.ibm.com>, |
4 | * Denis Joseph Barrow, | 4 | * Denis Joseph Barrow, |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/linkage.h> | 7 | #include <linux/linkage.h> |
8 | #include <asm/asm-offsets.h> | 8 | #include <asm/asm-offsets.h> |
9 | #include <asm/sigp.h> | ||
9 | 10 | ||
10 | # | 11 | # |
11 | # store_status | 12 | # store_status |
@@ -106,7 +107,7 @@ ENTRY(do_reipl_asm) | |||
106 | .L003: st %r1,__LC_SUBCHANNEL_ID | 107 | .L003: st %r1,__LC_SUBCHANNEL_ID |
107 | lhi %r1,0 # mode 0 = esa | 108 | lhi %r1,0 # mode 0 = esa |
108 | slr %r0,%r0 # set cpuid to zero | 109 | slr %r0,%r0 # set cpuid to zero |
109 | sigp %r1,%r0,0x12 # switch to esa mode | 110 | sigp %r1,%r0,SIGP_SET_ARCHITECTURE # switch to esa mode |
110 | lpsw 0 | 111 | lpsw 0 |
111 | .Ldisab: sll %r14,1 | 112 | .Ldisab: sll %r14,1 |
112 | srl %r14,1 # need to kill hi bit to avoid specification exceptions. | 113 | srl %r14,1 # need to kill hi bit to avoid specification exceptions. |
diff --git a/arch/s390/kernel/relocate_kernel.S b/arch/s390/kernel/relocate_kernel.S index c91d70aede91..f4e6f20e117a 100644 --- a/arch/s390/kernel/relocate_kernel.S +++ b/arch/s390/kernel/relocate_kernel.S | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/relocate_kernel.S | 2 | * Copyright IBM Corp. 2005 |
3 | * | ||
4 | * (C) Copyright IBM Corp. 2005 | ||
5 | * | 3 | * |
6 | * Author(s): Rolf Adelsberger, | 4 | * Author(s): Rolf Adelsberger, |
7 | * Heiko Carstens <heiko.carstens@de.ibm.com> | 5 | * Heiko Carstens <heiko.carstens@de.ibm.com> |
@@ -9,6 +7,7 @@ | |||
9 | */ | 7 | */ |
10 | 8 | ||
11 | #include <linux/linkage.h> | 9 | #include <linux/linkage.h> |
10 | #include <asm/sigp.h> | ||
12 | 11 | ||
13 | /* | 12 | /* |
14 | * moves the new kernel to its destination... | 13 | * moves the new kernel to its destination... |
@@ -93,7 +92,7 @@ ENTRY(relocate_kernel) | |||
93 | .no_diag308: | 92 | .no_diag308: |
94 | sr %r1,%r1 # clear %r1 | 93 | sr %r1,%r1 # clear %r1 |
95 | sr %r2,%r2 # clear %r2 | 94 | sr %r2,%r2 # clear %r2 |
96 | sigp %r1,%r2,0x12 # set cpuid to zero | 95 | sigp %r1,%r2,SIGP_SET_ARCHITECTURE # set cpuid to zero |
97 | lpsw 0 # hopefully start new kernel... | 96 | lpsw 0 # hopefully start new kernel... |
98 | 97 | ||
99 | .align 8 | 98 | .align 8 |
diff --git a/arch/s390/kernel/relocate_kernel64.S b/arch/s390/kernel/relocate_kernel64.S index 7c3ce589a7f0..cfac28330b03 100644 --- a/arch/s390/kernel/relocate_kernel64.S +++ b/arch/s390/kernel/relocate_kernel64.S | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/relocate_kernel64.S | 2 | * Copyright IBM Corp. 2005 |
3 | * | ||
4 | * (C) Copyright IBM Corp. 2005 | ||
5 | * | 3 | * |
6 | * Author(s): Rolf Adelsberger, | 4 | * Author(s): Rolf Adelsberger, |
7 | * Heiko Carstens <heiko.carstens@de.ibm.com> | 5 | * Heiko Carstens <heiko.carstens@de.ibm.com> |
@@ -9,6 +7,7 @@ | |||
9 | */ | 7 | */ |
10 | 8 | ||
11 | #include <linux/linkage.h> | 9 | #include <linux/linkage.h> |
10 | #include <asm/sigp.h> | ||
12 | 11 | ||
13 | /* | 12 | /* |
14 | * moves the new kernel to its destination... | 13 | * moves the new kernel to its destination... |
@@ -45,7 +44,7 @@ ENTRY(relocate_kernel) | |||
45 | diag %r0,%r0,0x308 | 44 | diag %r0,%r0,0x308 |
46 | .back: | 45 | .back: |
47 | lhi %r1,1 # mode 1 = esame | 46 | lhi %r1,1 # mode 1 = esame |
48 | sigp %r1,%r0,0x12 # switch to esame mode | 47 | sigp %r1,%r0,SIGP_SET_ARCHITECTURE # switch to esame mode |
49 | sam64 # switch to 64 bit addressing mode | 48 | sam64 # switch to 64 bit addressing mode |
50 | basr %r13,0 | 49 | basr %r13,0 |
51 | .back_base: | 50 | .back_base: |
@@ -96,7 +95,7 @@ ENTRY(relocate_kernel) | |||
96 | sam31 # 31 bit mode | 95 | sam31 # 31 bit mode |
97 | sr %r1,%r1 # erase register r1 | 96 | sr %r1,%r1 # erase register r1 |
98 | sr %r2,%r2 # erase register r2 | 97 | sr %r2,%r2 # erase register r2 |
99 | sigp %r1,%r2,0x12 # set cpuid to zero | 98 | sigp %r1,%r2,SIGP_SET_ARCHITECTURE # set cpuid to zero |
100 | lpsw 0 # hopefully start new kernel... | 99 | lpsw 0 # hopefully start new kernel... |
101 | 100 | ||
102 | .align 8 | 101 | .align 8 |
diff --git a/arch/s390/kernel/sclp.S b/arch/s390/kernel/sclp.S index 95792d846bb6..bf053898630d 100644 --- a/arch/s390/kernel/sclp.S +++ b/arch/s390/kernel/sclp.S | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Mini SCLP driver. | 2 | * Mini SCLP driver. |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2004,2009 | 4 | * Copyright IBM Corp. 2004, 2009 |
5 | * | 5 | * |
6 | * Author(s): Peter Oberparleiter <Peter.Oberparleiter@de.ibm.com>, | 6 | * Author(s): Peter Oberparleiter <Peter.Oberparleiter@de.ibm.com>, |
7 | * Heiko Carstens <heiko.carstens@de.ibm.com>, | 7 | * Heiko Carstens <heiko.carstens@de.ibm.com>, |
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index 489d1d8d96b0..34d75b50526c 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/setup.c | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) IBM Corp. 1999,2012 | 3 | * Copyright IBM Corp. 1999, 2012 |
6 | * Author(s): Hartmut Penner (hp@de.ibm.com), | 4 | * Author(s): Hartmut Penner (hp@de.ibm.com), |
7 | * Martin Schwidefsky (schwidefsky@de.ibm.com) | 5 | * Martin Schwidefsky (schwidefsky@de.ibm.com) |
8 | * | 6 | * |
@@ -430,10 +428,11 @@ static void __init setup_lowcore(void) | |||
430 | lc->restart_source = -1UL; | 428 | lc->restart_source = -1UL; |
431 | 429 | ||
432 | /* Setup absolute zero lowcore */ | 430 | /* Setup absolute zero lowcore */ |
433 | memcpy_absolute(&S390_lowcore.restart_stack, &lc->restart_stack, | 431 | mem_assign_absolute(S390_lowcore.restart_stack, lc->restart_stack); |
434 | 4 * sizeof(unsigned long)); | 432 | mem_assign_absolute(S390_lowcore.restart_fn, lc->restart_fn); |
435 | memcpy_absolute(&S390_lowcore.restart_psw, &lc->restart_psw, | 433 | mem_assign_absolute(S390_lowcore.restart_data, lc->restart_data); |
436 | sizeof(lc->restart_psw)); | 434 | mem_assign_absolute(S390_lowcore.restart_source, lc->restart_source); |
435 | mem_assign_absolute(S390_lowcore.restart_psw, lc->restart_psw); | ||
437 | 436 | ||
438 | set_prefix((u32)(unsigned long) lc); | 437 | set_prefix((u32)(unsigned long) lc); |
439 | lowcore_ptr[0] = lc; | 438 | lowcore_ptr[0] = lc; |
@@ -598,9 +597,7 @@ static void __init setup_memory_end(void) | |||
598 | static void __init setup_vmcoreinfo(void) | 597 | static void __init setup_vmcoreinfo(void) |
599 | { | 598 | { |
600 | #ifdef CONFIG_KEXEC | 599 | #ifdef CONFIG_KEXEC |
601 | unsigned long ptr = paddr_vmcoreinfo_note(); | 600 | mem_assign_absolute(S390_lowcore.vmcore_info, paddr_vmcoreinfo_note()); |
602 | |||
603 | memcpy_absolute(&S390_lowcore.vmcore_info, &ptr, sizeof(ptr)); | ||
604 | #endif | 601 | #endif |
605 | } | 602 | } |
606 | 603 | ||
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index ac565b44aabb..c13a2a37ef00 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/signal.c | 2 | * Copyright IBM Corp. 1999, 2006 |
3 | * | ||
4 | * Copyright (C) IBM Corp. 1999,2006 | ||
5 | * Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) | 3 | * Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) |
6 | * | 4 | * |
7 | * Based on Intel version | 5 | * Based on Intel version |
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 8dca9c248ac7..720fda1620f2 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * SMP related functions | 2 | * SMP related functions |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 1999,2012 | 4 | * Copyright IBM Corp. 1999, 2012 |
5 | * Author(s): Denis Joseph Barrow, | 5 | * Author(s): Denis Joseph Barrow, |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, | 6 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, |
7 | * Heiko Carstens <heiko.carstens@de.ibm.com>, | 7 | * Heiko Carstens <heiko.carstens@de.ibm.com>, |
@@ -38,40 +38,16 @@ | |||
38 | #include <asm/setup.h> | 38 | #include <asm/setup.h> |
39 | #include <asm/irq.h> | 39 | #include <asm/irq.h> |
40 | #include <asm/tlbflush.h> | 40 | #include <asm/tlbflush.h> |
41 | #include <asm/timer.h> | 41 | #include <asm/vtimer.h> |
42 | #include <asm/lowcore.h> | 42 | #include <asm/lowcore.h> |
43 | #include <asm/sclp.h> | 43 | #include <asm/sclp.h> |
44 | #include <asm/vdso.h> | 44 | #include <asm/vdso.h> |
45 | #include <asm/debug.h> | 45 | #include <asm/debug.h> |
46 | #include <asm/os_info.h> | 46 | #include <asm/os_info.h> |
47 | #include <asm/sigp.h> | ||
47 | #include "entry.h" | 48 | #include "entry.h" |
48 | 49 | ||
49 | enum { | 50 | enum { |
50 | sigp_sense = 1, | ||
51 | sigp_external_call = 2, | ||
52 | sigp_emergency_signal = 3, | ||
53 | sigp_start = 4, | ||
54 | sigp_stop = 5, | ||
55 | sigp_restart = 6, | ||
56 | sigp_stop_and_store_status = 9, | ||
57 | sigp_initial_cpu_reset = 11, | ||
58 | sigp_cpu_reset = 12, | ||
59 | sigp_set_prefix = 13, | ||
60 | sigp_store_status_at_address = 14, | ||
61 | sigp_store_extended_status_at_address = 15, | ||
62 | sigp_set_architecture = 18, | ||
63 | sigp_conditional_emergency_signal = 19, | ||
64 | sigp_sense_running = 21, | ||
65 | }; | ||
66 | |||
67 | enum { | ||
68 | sigp_order_code_accepted = 0, | ||
69 | sigp_status_stored = 1, | ||
70 | sigp_busy = 2, | ||
71 | sigp_not_operational = 3, | ||
72 | }; | ||
73 | |||
74 | enum { | ||
75 | ec_schedule = 0, | 51 | ec_schedule = 0, |
76 | ec_call_function, | 52 | ec_call_function, |
77 | ec_call_function_single, | 53 | ec_call_function_single, |
@@ -124,7 +100,7 @@ static inline int __pcpu_sigp_relax(u16 addr, u8 order, u32 parm, u32 *status) | |||
124 | 100 | ||
125 | while (1) { | 101 | while (1) { |
126 | cc = __pcpu_sigp(addr, order, parm, status); | 102 | cc = __pcpu_sigp(addr, order, parm, status); |
127 | if (cc != sigp_busy) | 103 | if (cc != SIGP_CC_BUSY) |
128 | return cc; | 104 | return cc; |
129 | cpu_relax(); | 105 | cpu_relax(); |
130 | } | 106 | } |
@@ -136,7 +112,7 @@ static int pcpu_sigp_retry(struct pcpu *pcpu, u8 order, u32 parm) | |||
136 | 112 | ||
137 | for (retry = 0; ; retry++) { | 113 | for (retry = 0; ; retry++) { |
138 | cc = __pcpu_sigp(pcpu->address, order, parm, &pcpu->status); | 114 | cc = __pcpu_sigp(pcpu->address, order, parm, &pcpu->status); |
139 | if (cc != sigp_busy) | 115 | if (cc != SIGP_CC_BUSY) |
140 | break; | 116 | break; |
141 | if (retry >= 3) | 117 | if (retry >= 3) |
142 | udelay(10); | 118 | udelay(10); |
@@ -146,20 +122,19 @@ static int pcpu_sigp_retry(struct pcpu *pcpu, u8 order, u32 parm) | |||
146 | 122 | ||
147 | static inline int pcpu_stopped(struct pcpu *pcpu) | 123 | static inline int pcpu_stopped(struct pcpu *pcpu) |
148 | { | 124 | { |
149 | if (__pcpu_sigp(pcpu->address, sigp_sense, | 125 | if (__pcpu_sigp(pcpu->address, SIGP_SENSE, |
150 | 0, &pcpu->status) != sigp_status_stored) | 126 | 0, &pcpu->status) != SIGP_CC_STATUS_STORED) |
151 | return 0; | 127 | return 0; |
152 | /* Check for stopped and check stop state */ | 128 | return !!(pcpu->status & (SIGP_STATUS_CHECK_STOP|SIGP_STATUS_STOPPED)); |
153 | return !!(pcpu->status & 0x50); | ||
154 | } | 129 | } |
155 | 130 | ||
156 | static inline int pcpu_running(struct pcpu *pcpu) | 131 | static inline int pcpu_running(struct pcpu *pcpu) |
157 | { | 132 | { |
158 | if (__pcpu_sigp(pcpu->address, sigp_sense_running, | 133 | if (__pcpu_sigp(pcpu->address, SIGP_SENSE_RUNNING, |
159 | 0, &pcpu->status) != sigp_status_stored) | 134 | 0, &pcpu->status) != SIGP_CC_STATUS_STORED) |
160 | return 1; | 135 | return 1; |
161 | /* Check for running status */ | 136 | /* Status stored condition code is equivalent to cpu not running. */ |
162 | return !(pcpu->status & 0x400); | 137 | return 0; |
163 | } | 138 | } |
164 | 139 | ||
165 | /* | 140 | /* |
@@ -181,7 +156,7 @@ static void pcpu_ec_call(struct pcpu *pcpu, int ec_bit) | |||
181 | 156 | ||
182 | set_bit(ec_bit, &pcpu->ec_mask); | 157 | set_bit(ec_bit, &pcpu->ec_mask); |
183 | order = pcpu_running(pcpu) ? | 158 | order = pcpu_running(pcpu) ? |
184 | sigp_external_call : sigp_emergency_signal; | 159 | SIGP_EXTERNAL_CALL : SIGP_EMERGENCY_SIGNAL; |
185 | pcpu_sigp_retry(pcpu, order, 0); | 160 | pcpu_sigp_retry(pcpu, order, 0); |
186 | } | 161 | } |
187 | 162 | ||
@@ -214,7 +189,7 @@ static int __cpuinit pcpu_alloc_lowcore(struct pcpu *pcpu, int cpu) | |||
214 | goto out; | 189 | goto out; |
215 | #endif | 190 | #endif |
216 | lowcore_ptr[cpu] = lc; | 191 | lowcore_ptr[cpu] = lc; |
217 | pcpu_sigp_retry(pcpu, sigp_set_prefix, (u32)(unsigned long) lc); | 192 | pcpu_sigp_retry(pcpu, SIGP_SET_PREFIX, (u32)(unsigned long) lc); |
218 | return 0; | 193 | return 0; |
219 | out: | 194 | out: |
220 | if (pcpu != &pcpu_devices[0]) { | 195 | if (pcpu != &pcpu_devices[0]) { |
@@ -229,7 +204,7 @@ out: | |||
229 | 204 | ||
230 | static void pcpu_free_lowcore(struct pcpu *pcpu) | 205 | static void pcpu_free_lowcore(struct pcpu *pcpu) |
231 | { | 206 | { |
232 | pcpu_sigp_retry(pcpu, sigp_set_prefix, 0); | 207 | pcpu_sigp_retry(pcpu, SIGP_SET_PREFIX, 0); |
233 | lowcore_ptr[pcpu - pcpu_devices] = NULL; | 208 | lowcore_ptr[pcpu - pcpu_devices] = NULL; |
234 | #ifndef CONFIG_64BIT | 209 | #ifndef CONFIG_64BIT |
235 | if (MACHINE_HAS_IEEE) { | 210 | if (MACHINE_HAS_IEEE) { |
@@ -288,7 +263,7 @@ static void pcpu_start_fn(struct pcpu *pcpu, void (*func)(void *), void *data) | |||
288 | lc->restart_fn = (unsigned long) func; | 263 | lc->restart_fn = (unsigned long) func; |
289 | lc->restart_data = (unsigned long) data; | 264 | lc->restart_data = (unsigned long) data; |
290 | lc->restart_source = -1UL; | 265 | lc->restart_source = -1UL; |
291 | pcpu_sigp_retry(pcpu, sigp_restart, 0); | 266 | pcpu_sigp_retry(pcpu, SIGP_RESTART, 0); |
292 | } | 267 | } |
293 | 268 | ||
294 | /* | 269 | /* |
@@ -298,26 +273,26 @@ static void pcpu_delegate(struct pcpu *pcpu, void (*func)(void *), | |||
298 | void *data, unsigned long stack) | 273 | void *data, unsigned long stack) |
299 | { | 274 | { |
300 | struct _lowcore *lc = lowcore_ptr[pcpu - pcpu_devices]; | 275 | struct _lowcore *lc = lowcore_ptr[pcpu - pcpu_devices]; |
301 | struct { | 276 | unsigned long source_cpu = stap(); |
302 | unsigned long stack; | ||
303 | void *func; | ||
304 | void *data; | ||
305 | unsigned long source; | ||
306 | } restart = { stack, func, data, stap() }; | ||
307 | 277 | ||
308 | __load_psw_mask(psw_kernel_bits); | 278 | __load_psw_mask(psw_kernel_bits); |
309 | if (pcpu->address == restart.source) | 279 | if (pcpu->address == source_cpu) |
310 | func(data); /* should not return */ | 280 | func(data); /* should not return */ |
311 | /* Stop target cpu (if func returns this stops the current cpu). */ | 281 | /* Stop target cpu (if func returns this stops the current cpu). */ |
312 | pcpu_sigp_retry(pcpu, sigp_stop, 0); | 282 | pcpu_sigp_retry(pcpu, SIGP_STOP, 0); |
313 | /* Restart func on the target cpu and stop the current cpu. */ | 283 | /* Restart func on the target cpu and stop the current cpu. */ |
314 | memcpy_absolute(&lc->restart_stack, &restart, sizeof(restart)); | 284 | mem_assign_absolute(lc->restart_stack, stack); |
285 | mem_assign_absolute(lc->restart_fn, (unsigned long) func); | ||
286 | mem_assign_absolute(lc->restart_data, (unsigned long) data); | ||
287 | mem_assign_absolute(lc->restart_source, source_cpu); | ||
315 | asm volatile( | 288 | asm volatile( |
316 | "0: sigp 0,%0,6 # sigp restart to target cpu\n" | 289 | "0: sigp 0,%0,%2 # sigp restart to target cpu\n" |
317 | " brc 2,0b # busy, try again\n" | 290 | " brc 2,0b # busy, try again\n" |
318 | "1: sigp 0,%1,5 # sigp stop to current cpu\n" | 291 | "1: sigp 0,%1,%3 # sigp stop to current cpu\n" |
319 | " brc 2,1b # busy, try again\n" | 292 | " brc 2,1b # busy, try again\n" |
320 | : : "d" (pcpu->address), "d" (restart.source) : "0", "1", "cc"); | 293 | : : "d" (pcpu->address), "d" (source_cpu), |
294 | "K" (SIGP_RESTART), "K" (SIGP_STOP) | ||
295 | : "0", "1", "cc"); | ||
321 | for (;;) ; | 296 | for (;;) ; |
322 | } | 297 | } |
323 | 298 | ||
@@ -388,8 +363,8 @@ void smp_emergency_stop(cpumask_t *cpumask) | |||
388 | for_each_cpu(cpu, cpumask) { | 363 | for_each_cpu(cpu, cpumask) { |
389 | struct pcpu *pcpu = pcpu_devices + cpu; | 364 | struct pcpu *pcpu = pcpu_devices + cpu; |
390 | set_bit(ec_stop_cpu, &pcpu->ec_mask); | 365 | set_bit(ec_stop_cpu, &pcpu->ec_mask); |
391 | while (__pcpu_sigp(pcpu->address, sigp_emergency_signal, | 366 | while (__pcpu_sigp(pcpu->address, SIGP_EMERGENCY_SIGNAL, |
392 | 0, NULL) == sigp_busy && | 367 | 0, NULL) == SIGP_CC_BUSY && |
393 | get_clock() < end) | 368 | get_clock() < end) |
394 | cpu_relax(); | 369 | cpu_relax(); |
395 | } | 370 | } |
@@ -425,7 +400,7 @@ void smp_send_stop(void) | |||
425 | /* stop all processors */ | 400 | /* stop all processors */ |
426 | for_each_cpu(cpu, &cpumask) { | 401 | for_each_cpu(cpu, &cpumask) { |
427 | struct pcpu *pcpu = pcpu_devices + cpu; | 402 | struct pcpu *pcpu = pcpu_devices + cpu; |
428 | pcpu_sigp_retry(pcpu, sigp_stop, 0); | 403 | pcpu_sigp_retry(pcpu, SIGP_STOP, 0); |
429 | while (!pcpu_stopped(pcpu)) | 404 | while (!pcpu_stopped(pcpu)) |
430 | cpu_relax(); | 405 | cpu_relax(); |
431 | } | 406 | } |
@@ -436,7 +411,7 @@ void smp_send_stop(void) | |||
436 | */ | 411 | */ |
437 | void smp_stop_cpu(void) | 412 | void smp_stop_cpu(void) |
438 | { | 413 | { |
439 | pcpu_sigp_retry(pcpu_devices + smp_processor_id(), sigp_stop, 0); | 414 | pcpu_sigp_retry(pcpu_devices + smp_processor_id(), SIGP_STOP, 0); |
440 | for (;;) ; | 415 | for (;;) ; |
441 | } | 416 | } |
442 | 417 | ||
@@ -590,7 +565,7 @@ static void __init smp_get_save_area(int cpu, u16 address) | |||
590 | } | 565 | } |
591 | #endif | 566 | #endif |
592 | /* Get the registers of a non-boot cpu. */ | 567 | /* Get the registers of a non-boot cpu. */ |
593 | __pcpu_sigp_relax(address, sigp_stop_and_store_status, 0, NULL); | 568 | __pcpu_sigp_relax(address, SIGP_STOP_AND_STORE_STATUS, 0, NULL); |
594 | memcpy_real(save_area, lc + SAVE_AREA_BASE, sizeof(*save_area)); | 569 | memcpy_real(save_area, lc + SAVE_AREA_BASE, sizeof(*save_area)); |
595 | } | 570 | } |
596 | 571 | ||
@@ -599,8 +574,8 @@ int smp_store_status(int cpu) | |||
599 | struct pcpu *pcpu; | 574 | struct pcpu *pcpu; |
600 | 575 | ||
601 | pcpu = pcpu_devices + cpu; | 576 | pcpu = pcpu_devices + cpu; |
602 | if (__pcpu_sigp_relax(pcpu->address, sigp_stop_and_store_status, | 577 | if (__pcpu_sigp_relax(pcpu->address, SIGP_STOP_AND_STORE_STATUS, |
603 | 0, NULL) != sigp_order_code_accepted) | 578 | 0, NULL) != SIGP_CC_ORDER_CODE_ACCEPTED) |
604 | return -EIO; | 579 | return -EIO; |
605 | return 0; | 580 | return 0; |
606 | } | 581 | } |
@@ -621,8 +596,8 @@ static struct sclp_cpu_info *smp_get_cpu_info(void) | |||
621 | if (info && (use_sigp_detection || sclp_get_cpu_info(info))) { | 596 | if (info && (use_sigp_detection || sclp_get_cpu_info(info))) { |
622 | use_sigp_detection = 1; | 597 | use_sigp_detection = 1; |
623 | for (address = 0; address <= MAX_CPU_ADDRESS; address++) { | 598 | for (address = 0; address <= MAX_CPU_ADDRESS; address++) { |
624 | if (__pcpu_sigp_relax(address, sigp_sense, 0, NULL) == | 599 | if (__pcpu_sigp_relax(address, SIGP_SENSE, 0, NULL) == |
625 | sigp_not_operational) | 600 | SIGP_CC_NOT_OPERATIONAL) |
626 | continue; | 601 | continue; |
627 | info->cpu[info->configured].address = address; | 602 | info->cpu[info->configured].address = address; |
628 | info->configured++; | 603 | info->configured++; |
@@ -732,8 +707,8 @@ int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle) | |||
732 | pcpu = pcpu_devices + cpu; | 707 | pcpu = pcpu_devices + cpu; |
733 | if (pcpu->state != CPU_STATE_CONFIGURED) | 708 | if (pcpu->state != CPU_STATE_CONFIGURED) |
734 | return -EIO; | 709 | return -EIO; |
735 | if (pcpu_sigp_retry(pcpu, sigp_initial_cpu_reset, 0) != | 710 | if (pcpu_sigp_retry(pcpu, SIGP_INITIAL_CPU_RESET, 0) != |
736 | sigp_order_code_accepted) | 711 | SIGP_CC_ORDER_CODE_ACCEPTED) |
737 | return -EIO; | 712 | return -EIO; |
738 | 713 | ||
739 | rc = pcpu_alloc_lowcore(pcpu, cpu); | 714 | rc = pcpu_alloc_lowcore(pcpu, cpu); |
@@ -793,7 +768,7 @@ void __cpu_die(unsigned int cpu) | |||
793 | void __noreturn cpu_die(void) | 768 | void __noreturn cpu_die(void) |
794 | { | 769 | { |
795 | idle_task_exit(); | 770 | idle_task_exit(); |
796 | pcpu_sigp_retry(pcpu_devices + smp_processor_id(), sigp_stop, 0); | 771 | pcpu_sigp_retry(pcpu_devices + smp_processor_id(), SIGP_STOP, 0); |
797 | for (;;) ; | 772 | for (;;) ; |
798 | } | 773 | } |
799 | 774 | ||
@@ -940,7 +915,7 @@ static ssize_t show_idle_count(struct device *dev, | |||
940 | do { | 915 | do { |
941 | sequence = ACCESS_ONCE(idle->sequence); | 916 | sequence = ACCESS_ONCE(idle->sequence); |
942 | idle_count = ACCESS_ONCE(idle->idle_count); | 917 | idle_count = ACCESS_ONCE(idle->idle_count); |
943 | if (ACCESS_ONCE(idle->idle_enter)) | 918 | if (ACCESS_ONCE(idle->clock_idle_enter)) |
944 | idle_count++; | 919 | idle_count++; |
945 | } while ((sequence & 1) || (idle->sequence != sequence)); | 920 | } while ((sequence & 1) || (idle->sequence != sequence)); |
946 | return sprintf(buf, "%llu\n", idle_count); | 921 | return sprintf(buf, "%llu\n", idle_count); |
@@ -958,8 +933,8 @@ static ssize_t show_idle_time(struct device *dev, | |||
958 | now = get_clock(); | 933 | now = get_clock(); |
959 | sequence = ACCESS_ONCE(idle->sequence); | 934 | sequence = ACCESS_ONCE(idle->sequence); |
960 | idle_time = ACCESS_ONCE(idle->idle_time); | 935 | idle_time = ACCESS_ONCE(idle->idle_time); |
961 | idle_enter = ACCESS_ONCE(idle->idle_enter); | 936 | idle_enter = ACCESS_ONCE(idle->clock_idle_enter); |
962 | idle_exit = ACCESS_ONCE(idle->idle_exit); | 937 | idle_exit = ACCESS_ONCE(idle->clock_idle_exit); |
963 | } while ((sequence & 1) || (idle->sequence != sequence)); | 938 | } while ((sequence & 1) || (idle->sequence != sequence)); |
964 | idle_time += idle_enter ? ((idle_exit ? : now) - idle_enter) : 0; | 939 | idle_time += idle_enter ? ((idle_exit ? : now) - idle_enter) : 0; |
965 | return sprintf(buf, "%llu\n", idle_time >> 12); | 940 | return sprintf(buf, "%llu\n", idle_time >> 12); |
@@ -982,14 +957,11 @@ static int __cpuinit smp_cpu_notify(struct notifier_block *self, | |||
982 | unsigned int cpu = (unsigned int)(long)hcpu; | 957 | unsigned int cpu = (unsigned int)(long)hcpu; |
983 | struct cpu *c = &pcpu_devices[cpu].cpu; | 958 | struct cpu *c = &pcpu_devices[cpu].cpu; |
984 | struct device *s = &c->dev; | 959 | struct device *s = &c->dev; |
985 | struct s390_idle_data *idle; | ||
986 | int err = 0; | 960 | int err = 0; |
987 | 961 | ||
988 | switch (action) { | 962 | switch (action) { |
989 | case CPU_ONLINE: | 963 | case CPU_ONLINE: |
990 | case CPU_ONLINE_FROZEN: | 964 | case CPU_ONLINE_FROZEN: |
991 | idle = &per_cpu(s390_idle, cpu); | ||
992 | memset(idle, 0, sizeof(struct s390_idle_data)); | ||
993 | err = sysfs_create_group(&s->kobj, &cpu_online_attr_group); | 965 | err = sysfs_create_group(&s->kobj, &cpu_online_attr_group); |
994 | break; | 966 | break; |
995 | case CPU_DEAD: | 967 | case CPU_DEAD: |
diff --git a/arch/s390/kernel/stacktrace.c b/arch/s390/kernel/stacktrace.c index 8841919ef7e6..1785cd82253c 100644 --- a/arch/s390/kernel/stacktrace.c +++ b/arch/s390/kernel/stacktrace.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/stacktrace.c | ||
3 | * | ||
4 | * Stack trace management functions | 2 | * Stack trace management functions |
5 | * | 3 | * |
6 | * Copyright (C) IBM Corp. 2006 | 4 | * Copyright IBM Corp. 2006 |
7 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | 5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> |
8 | */ | 6 | */ |
9 | 7 | ||
diff --git a/arch/s390/kernel/swsusp_asm64.S b/arch/s390/kernel/swsusp_asm64.S index dd70ef046058..d4ca4e0617b5 100644 --- a/arch/s390/kernel/swsusp_asm64.S +++ b/arch/s390/kernel/swsusp_asm64.S | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <asm/ptrace.h> | 12 | #include <asm/ptrace.h> |
13 | #include <asm/thread_info.h> | 13 | #include <asm/thread_info.h> |
14 | #include <asm/asm-offsets.h> | 14 | #include <asm/asm-offsets.h> |
15 | #include <asm/sigp.h> | ||
15 | 16 | ||
16 | /* | 17 | /* |
17 | * Save register context in absolute 0 lowcore and call swsusp_save() to | 18 | * Save register context in absolute 0 lowcore and call swsusp_save() to |
@@ -163,7 +164,7 @@ ENTRY(swsusp_arch_resume) | |||
163 | diag %r0,%r0,0x308 | 164 | diag %r0,%r0,0x308 |
164 | restart_entry: | 165 | restart_entry: |
165 | lhi %r1,1 | 166 | lhi %r1,1 |
166 | sigp %r1,%r0,0x12 | 167 | sigp %r1,%r0,SIGP_SET_ARCHITECTURE |
167 | sam64 | 168 | sam64 |
168 | larl %r1,.Lnew_pgm_check_psw | 169 | larl %r1,.Lnew_pgm_check_psw |
169 | lpswe 0(%r1) | 170 | lpswe 0(%r1) |
@@ -179,7 +180,7 @@ pgm_check_entry: | |||
179 | larl %r4,.Lrestart_suspend_psw /* Set new restart PSW */ | 180 | larl %r4,.Lrestart_suspend_psw /* Set new restart PSW */ |
180 | mvc __LC_RST_NEW_PSW(16,%r0),0(%r4) | 181 | mvc __LC_RST_NEW_PSW(16,%r0),0(%r4) |
181 | 3: | 182 | 3: |
182 | sigp %r9,%r1,11 /* sigp initial cpu reset */ | 183 | sigp %r9,%r1,SIGP_INITIAL_CPU_RESET /* sigp initial cpu reset */ |
183 | brc 8,4f /* accepted */ | 184 | brc 8,4f /* accepted */ |
184 | brc 2,3b /* busy, try again */ | 185 | brc 2,3b /* busy, try again */ |
185 | 186 | ||
@@ -190,16 +191,16 @@ pgm_check_entry: | |||
190 | larl %r3,_sclp_print_early | 191 | larl %r3,_sclp_print_early |
191 | lghi %r1,0 | 192 | lghi %r1,0 |
192 | sam31 | 193 | sam31 |
193 | sigp %r1,%r0,0x12 | 194 | sigp %r1,%r0,SIGP_SET_ARCHITECTURE |
194 | basr %r14,%r3 | 195 | basr %r14,%r3 |
195 | larl %r3,.Ldisabled_wait_31 | 196 | larl %r3,.Ldisabled_wait_31 |
196 | lpsw 0(%r3) | 197 | lpsw 0(%r3) |
197 | 4: | 198 | 4: |
198 | /* Switch to suspend CPU */ | 199 | /* Switch to suspend CPU */ |
199 | sigp %r9,%r1,6 /* sigp restart to suspend CPU */ | 200 | sigp %r9,%r1,SIGP_RESTART /* sigp restart to suspend CPU */ |
200 | brc 2,4b /* busy, try again */ | 201 | brc 2,4b /* busy, try again */ |
201 | 5: | 202 | 5: |
202 | sigp %r9,%r2,5 /* sigp stop to current resume CPU */ | 203 | sigp %r9,%r2,SIGP_STOP /* sigp stop to current resume CPU */ |
203 | brc 2,5b /* busy, try again */ | 204 | brc 2,5b /* busy, try again */ |
204 | 6: j 6b | 205 | 6: j 6b |
205 | 206 | ||
@@ -207,7 +208,7 @@ restart_suspend: | |||
207 | larl %r1,.Lresume_cpu | 208 | larl %r1,.Lresume_cpu |
208 | llgh %r2,0(%r1) | 209 | llgh %r2,0(%r1) |
209 | 7: | 210 | 7: |
210 | sigp %r9,%r2,1 /* sigp sense, wait for resume CPU */ | 211 | sigp %r9,%r2,SIGP_SENSE /* sigp sense, wait for resume CPU */ |
211 | brc 8,7b /* accepted, status 0, still running */ | 212 | brc 8,7b /* accepted, status 0, still running */ |
212 | brc 2,7b /* busy, try again */ | 213 | brc 2,7b /* busy, try again */ |
213 | tmll %r9,0x40 /* Test if resume CPU is stopped */ | 214 | tmll %r9,0x40 /* Test if resume CPU is stopped */ |
diff --git a/arch/s390/kernel/sys_s390.c b/arch/s390/kernel/sys_s390.c index 78ea1948ff51..b4a29eee41b8 100644 --- a/arch/s390/kernel/sys_s390.c +++ b/arch/s390/kernel/sys_s390.c | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/sys_s390.c | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999, 2000 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
7 | * Thomas Spatzier (tspat@de.ibm.com) | 5 | * Thomas Spatzier (tspat@de.ibm.com) |
8 | * | 6 | * |
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index d4e1cb1dbcd1..dcec960fc724 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/time.c | ||
3 | * Time of day based timer functions. | 2 | * Time of day based timer functions. |
4 | * | 3 | * |
5 | * S390 version | 4 | * S390 version |
@@ -45,7 +44,7 @@ | |||
45 | #include <asm/vdso.h> | 44 | #include <asm/vdso.h> |
46 | #include <asm/irq.h> | 45 | #include <asm/irq.h> |
47 | #include <asm/irq_regs.h> | 46 | #include <asm/irq_regs.h> |
48 | #include <asm/timer.h> | 47 | #include <asm/vtimer.h> |
49 | #include <asm/etr.h> | 48 | #include <asm/etr.h> |
50 | #include <asm/cio.h> | 49 | #include <asm/cio.h> |
51 | #include "entry.h" | 50 | #include "entry.h" |
diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c index 4f8dc942257c..05151e06c388 100644 --- a/arch/s390/kernel/topology.c +++ b/arch/s390/kernel/topology.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 2007,2011 | 2 | * Copyright IBM Corp. 2007, 2011 |
3 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | 3 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> |
4 | */ | 4 | */ |
5 | 5 | ||
diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c index 77cdf4234ebc..af2421a0f315 100644 --- a/arch/s390/kernel/traps.c +++ b/arch/s390/kernel/traps.c | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/traps.c | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999, 2000 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
7 | * Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com), | 5 | * Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com), |
8 | * | 6 | * |
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c index 39ebff506946..4fc97b40a6e1 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c | |||
@@ -1,71 +1,82 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/vtime.c | ||
3 | * Virtual cpu timer based timer functions. | 2 | * Virtual cpu timer based timer functions. |
4 | * | 3 | * |
5 | * S390 version | 4 | * Copyright IBM Corp. 2004, 2012 |
6 | * Copyright (C) 2004 IBM Deutschland Entwicklung GmbH, IBM Corporation | ||
7 | * Author(s): Jan Glauber <jan.glauber@de.ibm.com> | 5 | * Author(s): Jan Glauber <jan.glauber@de.ibm.com> |
8 | */ | 6 | */ |
9 | 7 | ||
10 | #include <linux/module.h> | 8 | #include <linux/kernel_stat.h> |
9 | #include <linux/notifier.h> | ||
10 | #include <linux/kprobes.h> | ||
11 | #include <linux/export.h> | ||
11 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
12 | #include <linux/time.h> | ||
13 | #include <linux/delay.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/smp.h> | ||
16 | #include <linux/types.h> | ||
17 | #include <linux/timex.h> | 13 | #include <linux/timex.h> |
18 | #include <linux/notifier.h> | 14 | #include <linux/types.h> |
19 | #include <linux/kernel_stat.h> | 15 | #include <linux/time.h> |
20 | #include <linux/rcupdate.h> | ||
21 | #include <linux/posix-timers.h> | ||
22 | #include <linux/cpu.h> | 16 | #include <linux/cpu.h> |
23 | #include <linux/kprobes.h> | 17 | #include <linux/smp.h> |
24 | 18 | ||
25 | #include <asm/timer.h> | ||
26 | #include <asm/irq_regs.h> | 19 | #include <asm/irq_regs.h> |
27 | #include <asm/cputime.h> | 20 | #include <asm/cputime.h> |
21 | #include <asm/vtimer.h> | ||
28 | #include <asm/irq.h> | 22 | #include <asm/irq.h> |
29 | #include "entry.h" | 23 | #include "entry.h" |
30 | 24 | ||
31 | static DEFINE_PER_CPU(struct vtimer_queue, virt_cpu_timer); | 25 | static void virt_timer_expire(void); |
32 | 26 | ||
33 | DEFINE_PER_CPU(struct s390_idle_data, s390_idle); | 27 | DEFINE_PER_CPU(struct s390_idle_data, s390_idle); |
34 | 28 | ||
35 | static inline __u64 get_vtimer(void) | 29 | static LIST_HEAD(virt_timer_list); |
30 | static DEFINE_SPINLOCK(virt_timer_lock); | ||
31 | static atomic64_t virt_timer_current; | ||
32 | static atomic64_t virt_timer_elapsed; | ||
33 | |||
34 | static inline u64 get_vtimer(void) | ||
36 | { | 35 | { |
37 | __u64 timer; | 36 | u64 timer; |
38 | 37 | ||
39 | asm volatile("STPT %0" : "=m" (timer)); | 38 | asm volatile("stpt %0" : "=m" (timer)); |
40 | return timer; | 39 | return timer; |
41 | } | 40 | } |
42 | 41 | ||
43 | static inline void set_vtimer(__u64 expires) | 42 | static inline void set_vtimer(u64 expires) |
44 | { | 43 | { |
45 | __u64 timer; | 44 | u64 timer; |
46 | 45 | ||
47 | asm volatile (" STPT %0\n" /* Store current cpu timer value */ | 46 | asm volatile( |
48 | " SPT %1" /* Set new value immediately afterwards */ | 47 | " stpt %0\n" /* Store current cpu timer value */ |
49 | : "=m" (timer) : "m" (expires) ); | 48 | " spt %1" /* Set new value imm. afterwards */ |
49 | : "=m" (timer) : "m" (expires)); | ||
50 | S390_lowcore.system_timer += S390_lowcore.last_update_timer - timer; | 50 | S390_lowcore.system_timer += S390_lowcore.last_update_timer - timer; |
51 | S390_lowcore.last_update_timer = expires; | 51 | S390_lowcore.last_update_timer = expires; |
52 | } | 52 | } |
53 | 53 | ||
54 | static inline int virt_timer_forward(u64 elapsed) | ||
55 | { | ||
56 | BUG_ON(!irqs_disabled()); | ||
57 | |||
58 | if (list_empty(&virt_timer_list)) | ||
59 | return 0; | ||
60 | elapsed = atomic64_add_return(elapsed, &virt_timer_elapsed); | ||
61 | return elapsed >= atomic64_read(&virt_timer_current); | ||
62 | } | ||
63 | |||
54 | /* | 64 | /* |
55 | * Update process times based on virtual cpu times stored by entry.S | 65 | * Update process times based on virtual cpu times stored by entry.S |
56 | * to the lowcore fields user_timer, system_timer & steal_clock. | 66 | * to the lowcore fields user_timer, system_timer & steal_clock. |
57 | */ | 67 | */ |
58 | static void do_account_vtime(struct task_struct *tsk, int hardirq_offset) | 68 | static int do_account_vtime(struct task_struct *tsk, int hardirq_offset) |
59 | { | 69 | { |
60 | struct thread_info *ti = task_thread_info(tsk); | 70 | struct thread_info *ti = task_thread_info(tsk); |
61 | __u64 timer, clock, user, system, steal; | 71 | u64 timer, clock, user, system, steal; |
62 | 72 | ||
63 | timer = S390_lowcore.last_update_timer; | 73 | timer = S390_lowcore.last_update_timer; |
64 | clock = S390_lowcore.last_update_clock; | 74 | clock = S390_lowcore.last_update_clock; |
65 | asm volatile (" STPT %0\n" /* Store current cpu timer value */ | 75 | asm volatile( |
66 | " STCK %1" /* Store current tod clock value */ | 76 | " stpt %0\n" /* Store current cpu timer value */ |
67 | : "=m" (S390_lowcore.last_update_timer), | 77 | " stck %1" /* Store current tod clock value */ |
68 | "=m" (S390_lowcore.last_update_clock) ); | 78 | : "=m" (S390_lowcore.last_update_timer), |
79 | "=m" (S390_lowcore.last_update_clock)); | ||
69 | S390_lowcore.system_timer += timer - S390_lowcore.last_update_timer; | 80 | S390_lowcore.system_timer += timer - S390_lowcore.last_update_timer; |
70 | S390_lowcore.steal_timer += S390_lowcore.last_update_clock - clock; | 81 | S390_lowcore.steal_timer += S390_lowcore.last_update_clock - clock; |
71 | 82 | ||
@@ -84,6 +95,8 @@ static void do_account_vtime(struct task_struct *tsk, int hardirq_offset) | |||
84 | S390_lowcore.steal_timer = 0; | 95 | S390_lowcore.steal_timer = 0; |
85 | account_steal_time(steal); | 96 | account_steal_time(steal); |
86 | } | 97 | } |
98 | |||
99 | return virt_timer_forward(user + system); | ||
87 | } | 100 | } |
88 | 101 | ||
89 | void account_vtime(struct task_struct *prev, struct task_struct *next) | 102 | void account_vtime(struct task_struct *prev, struct task_struct *next) |
@@ -101,7 +114,8 @@ void account_vtime(struct task_struct *prev, struct task_struct *next) | |||
101 | 114 | ||
102 | void account_process_tick(struct task_struct *tsk, int user_tick) | 115 | void account_process_tick(struct task_struct *tsk, int user_tick) |
103 | { | 116 | { |
104 | do_account_vtime(tsk, HARDIRQ_OFFSET); | 117 | if (do_account_vtime(tsk, HARDIRQ_OFFSET)) |
118 | virt_timer_expire(); | ||
105 | } | 119 | } |
106 | 120 | ||
107 | /* | 121 | /* |
@@ -111,7 +125,7 @@ void account_process_tick(struct task_struct *tsk, int user_tick) | |||
111 | void account_system_vtime(struct task_struct *tsk) | 125 | void account_system_vtime(struct task_struct *tsk) |
112 | { | 126 | { |
113 | struct thread_info *ti = task_thread_info(tsk); | 127 | struct thread_info *ti = task_thread_info(tsk); |
114 | __u64 timer, system; | 128 | u64 timer, system; |
115 | 129 | ||
116 | timer = S390_lowcore.last_update_timer; | 130 | timer = S390_lowcore.last_update_timer; |
117 | S390_lowcore.last_update_timer = get_vtimer(); | 131 | S390_lowcore.last_update_timer = get_vtimer(); |
@@ -121,13 +135,14 @@ void account_system_vtime(struct task_struct *tsk) | |||
121 | S390_lowcore.steal_timer -= system; | 135 | S390_lowcore.steal_timer -= system; |
122 | ti->system_timer = S390_lowcore.system_timer; | 136 | ti->system_timer = S390_lowcore.system_timer; |
123 | account_system_time(tsk, 0, system, system); | 137 | account_system_time(tsk, 0, system, system); |
138 | |||
139 | virt_timer_forward(system); | ||
124 | } | 140 | } |
125 | EXPORT_SYMBOL_GPL(account_system_vtime); | 141 | EXPORT_SYMBOL_GPL(account_system_vtime); |
126 | 142 | ||
127 | void __kprobes vtime_stop_cpu(void) | 143 | void __kprobes vtime_stop_cpu(void) |
128 | { | 144 | { |
129 | struct s390_idle_data *idle = &__get_cpu_var(s390_idle); | 145 | struct s390_idle_data *idle = &__get_cpu_var(s390_idle); |
130 | struct vtimer_queue *vq = &__get_cpu_var(virt_cpu_timer); | ||
131 | unsigned long long idle_time; | 146 | unsigned long long idle_time; |
132 | unsigned long psw_mask; | 147 | unsigned long psw_mask; |
133 | 148 | ||
@@ -141,7 +156,7 @@ void __kprobes vtime_stop_cpu(void) | |||
141 | idle->nohz_delay = 0; | 156 | idle->nohz_delay = 0; |
142 | 157 | ||
143 | /* Call the assembler magic in entry.S */ | 158 | /* Call the assembler magic in entry.S */ |
144 | psw_idle(idle, vq, psw_mask, !list_empty(&vq->list)); | 159 | psw_idle(idle, psw_mask); |
145 | 160 | ||
146 | /* Reenable preemption tracer. */ | 161 | /* Reenable preemption tracer. */ |
147 | start_critical_timings(); | 162 | start_critical_timings(); |
@@ -149,9 +164,9 @@ void __kprobes vtime_stop_cpu(void) | |||
149 | /* Account time spent with enabled wait psw loaded as idle time. */ | 164 | /* Account time spent with enabled wait psw loaded as idle time. */ |
150 | idle->sequence++; | 165 | idle->sequence++; |
151 | smp_wmb(); | 166 | smp_wmb(); |
152 | idle_time = idle->idle_exit - idle->idle_enter; | 167 | idle_time = idle->clock_idle_exit - idle->clock_idle_enter; |
168 | idle->clock_idle_enter = idle->clock_idle_exit = 0ULL; | ||
153 | idle->idle_time += idle_time; | 169 | idle->idle_time += idle_time; |
154 | idle->idle_enter = idle->idle_exit = 0ULL; | ||
155 | idle->idle_count++; | 170 | idle->idle_count++; |
156 | account_idle_time(idle_time); | 171 | account_idle_time(idle_time); |
157 | smp_wmb(); | 172 | smp_wmb(); |
@@ -167,10 +182,10 @@ cputime64_t s390_get_idle_time(int cpu) | |||
167 | do { | 182 | do { |
168 | now = get_clock(); | 183 | now = get_clock(); |
169 | sequence = ACCESS_ONCE(idle->sequence); | 184 | sequence = ACCESS_ONCE(idle->sequence); |
170 | idle_enter = ACCESS_ONCE(idle->idle_enter); | 185 | idle_enter = ACCESS_ONCE(idle->clock_idle_enter); |
171 | idle_exit = ACCESS_ONCE(idle->idle_exit); | 186 | idle_exit = ACCESS_ONCE(idle->clock_idle_exit); |
172 | } while ((sequence & 1) || (idle->sequence != sequence)); | 187 | } while ((sequence & 1) || (idle->sequence != sequence)); |
173 | return idle_enter ? ((idle_exit ? : now) - idle_enter) : 0; | 188 | return idle_enter ? ((idle_exit ?: now) - idle_enter) : 0; |
174 | } | 189 | } |
175 | 190 | ||
176 | /* | 191 | /* |
@@ -179,11 +194,11 @@ cputime64_t s390_get_idle_time(int cpu) | |||
179 | */ | 194 | */ |
180 | static void list_add_sorted(struct vtimer_list *timer, struct list_head *head) | 195 | static void list_add_sorted(struct vtimer_list *timer, struct list_head *head) |
181 | { | 196 | { |
182 | struct vtimer_list *event; | 197 | struct vtimer_list *tmp; |
183 | 198 | ||
184 | list_for_each_entry(event, head, entry) { | 199 | list_for_each_entry(tmp, head, entry) { |
185 | if (event->expires > timer->expires) { | 200 | if (tmp->expires > timer->expires) { |
186 | list_add_tail(&timer->entry, &event->entry); | 201 | list_add_tail(&timer->entry, &tmp->entry); |
187 | return; | 202 | return; |
188 | } | 203 | } |
189 | } | 204 | } |
@@ -191,82 +206,45 @@ static void list_add_sorted(struct vtimer_list *timer, struct list_head *head) | |||
191 | } | 206 | } |
192 | 207 | ||
193 | /* | 208 | /* |
194 | * Do the callback functions of expired vtimer events. | 209 | * Handler for expired virtual CPU timer. |
195 | * Called from within the interrupt handler. | ||
196 | */ | ||
197 | static void do_callbacks(struct list_head *cb_list) | ||
198 | { | ||
199 | struct vtimer_queue *vq; | ||
200 | struct vtimer_list *event, *tmp; | ||
201 | |||
202 | if (list_empty(cb_list)) | ||
203 | return; | ||
204 | |||
205 | vq = &__get_cpu_var(virt_cpu_timer); | ||
206 | |||
207 | list_for_each_entry_safe(event, tmp, cb_list, entry) { | ||
208 | list_del_init(&event->entry); | ||
209 | (event->function)(event->data); | ||
210 | if (event->interval) { | ||
211 | /* Recharge interval timer */ | ||
212 | event->expires = event->interval + vq->elapsed; | ||
213 | spin_lock(&vq->lock); | ||
214 | list_add_sorted(event, &vq->list); | ||
215 | spin_unlock(&vq->lock); | ||
216 | } | ||
217 | } | ||
218 | } | ||
219 | |||
220 | /* | ||
221 | * Handler for the virtual CPU timer. | ||
222 | */ | 210 | */ |
223 | static void do_cpu_timer_interrupt(struct ext_code ext_code, | 211 | static void virt_timer_expire(void) |
224 | unsigned int param32, unsigned long param64) | ||
225 | { | 212 | { |
226 | struct vtimer_queue *vq; | 213 | struct vtimer_list *timer, *tmp; |
227 | struct vtimer_list *event, *tmp; | 214 | unsigned long elapsed; |
228 | struct list_head cb_list; /* the callback queue */ | 215 | LIST_HEAD(cb_list); |
229 | __u64 elapsed, next; | 216 | |
230 | 217 | /* walk timer list, fire all expired timers */ | |
231 | kstat_cpu(smp_processor_id()).irqs[EXTINT_TMR]++; | 218 | spin_lock(&virt_timer_lock); |
232 | INIT_LIST_HEAD(&cb_list); | 219 | elapsed = atomic64_read(&virt_timer_elapsed); |
233 | vq = &__get_cpu_var(virt_cpu_timer); | 220 | list_for_each_entry_safe(timer, tmp, &virt_timer_list, entry) { |
234 | 221 | if (timer->expires < elapsed) | |
235 | /* walk timer list, fire all expired events */ | ||
236 | spin_lock(&vq->lock); | ||
237 | |||
238 | elapsed = vq->elapsed + (vq->timer - S390_lowcore.async_enter_timer); | ||
239 | BUG_ON((s64) elapsed < 0); | ||
240 | vq->elapsed = 0; | ||
241 | list_for_each_entry_safe(event, tmp, &vq->list, entry) { | ||
242 | if (event->expires < elapsed) | ||
243 | /* move expired timer to the callback queue */ | 222 | /* move expired timer to the callback queue */ |
244 | list_move_tail(&event->entry, &cb_list); | 223 | list_move_tail(&timer->entry, &cb_list); |
245 | else | 224 | else |
246 | event->expires -= elapsed; | 225 | timer->expires -= elapsed; |
247 | } | 226 | } |
248 | spin_unlock(&vq->lock); | 227 | if (!list_empty(&virt_timer_list)) { |
249 | 228 | timer = list_first_entry(&virt_timer_list, | |
250 | do_callbacks(&cb_list); | 229 | struct vtimer_list, entry); |
251 | 230 | atomic64_set(&virt_timer_current, timer->expires); | |
252 | /* next event is first in list */ | 231 | } |
253 | next = VTIMER_MAX_SLICE; | 232 | atomic64_sub(elapsed, &virt_timer_elapsed); |
254 | spin_lock(&vq->lock); | 233 | spin_unlock(&virt_timer_lock); |
255 | if (!list_empty(&vq->list)) { | 234 | |
256 | event = list_first_entry(&vq->list, struct vtimer_list, entry); | 235 | /* Do callbacks and recharge periodic timers */ |
257 | next = event->expires; | 236 | list_for_each_entry_safe(timer, tmp, &cb_list, entry) { |
237 | list_del_init(&timer->entry); | ||
238 | timer->function(timer->data); | ||
239 | if (timer->interval) { | ||
240 | /* Recharge interval timer */ | ||
241 | timer->expires = timer->interval + | ||
242 | atomic64_read(&virt_timer_elapsed); | ||
243 | spin_lock(&virt_timer_lock); | ||
244 | list_add_sorted(timer, &virt_timer_list); | ||
245 | spin_unlock(&virt_timer_lock); | ||
246 | } | ||
258 | } | 247 | } |
259 | spin_unlock(&vq->lock); | ||
260 | /* | ||
261 | * To improve precision add the time spent by the | ||
262 | * interrupt handler to the elapsed time. | ||
263 | * Note: CPU timer counts down and we got an interrupt, | ||
264 | * the current content is negative | ||
265 | */ | ||
266 | elapsed = S390_lowcore.async_enter_timer - get_vtimer(); | ||
267 | set_vtimer(next - elapsed); | ||
268 | vq->timer = next - elapsed; | ||
269 | vq->elapsed = elapsed; | ||
270 | } | 248 | } |
271 | 249 | ||
272 | void init_virt_timer(struct vtimer_list *timer) | 250 | void init_virt_timer(struct vtimer_list *timer) |
@@ -278,179 +256,108 @@ EXPORT_SYMBOL(init_virt_timer); | |||
278 | 256 | ||
279 | static inline int vtimer_pending(struct vtimer_list *timer) | 257 | static inline int vtimer_pending(struct vtimer_list *timer) |
280 | { | 258 | { |
281 | return (!list_empty(&timer->entry)); | 259 | return !list_empty(&timer->entry); |
282 | } | 260 | } |
283 | 261 | ||
284 | /* | ||
285 | * this function should only run on the specified CPU | ||
286 | */ | ||
287 | static void internal_add_vtimer(struct vtimer_list *timer) | 262 | static void internal_add_vtimer(struct vtimer_list *timer) |
288 | { | 263 | { |
289 | struct vtimer_queue *vq; | 264 | if (list_empty(&virt_timer_list)) { |
290 | unsigned long flags; | 265 | /* First timer, just program it. */ |
291 | __u64 left, expires; | 266 | atomic64_set(&virt_timer_current, timer->expires); |
292 | 267 | atomic64_set(&virt_timer_elapsed, 0); | |
293 | vq = &per_cpu(virt_cpu_timer, timer->cpu); | 268 | list_add(&timer->entry, &virt_timer_list); |
294 | spin_lock_irqsave(&vq->lock, flags); | ||
295 | |||
296 | BUG_ON(timer->cpu != smp_processor_id()); | ||
297 | |||
298 | if (list_empty(&vq->list)) { | ||
299 | /* First timer on this cpu, just program it. */ | ||
300 | list_add(&timer->entry, &vq->list); | ||
301 | set_vtimer(timer->expires); | ||
302 | vq->timer = timer->expires; | ||
303 | vq->elapsed = 0; | ||
304 | } else { | 269 | } else { |
305 | /* Check progress of old timers. */ | 270 | /* Update timer against current base. */ |
306 | expires = timer->expires; | 271 | timer->expires += atomic64_read(&virt_timer_elapsed); |
307 | left = get_vtimer(); | 272 | if (likely((s64) timer->expires < |
308 | if (likely((s64) expires < (s64) left)) { | 273 | (s64) atomic64_read(&virt_timer_current))) |
309 | /* The new timer expires before the current timer. */ | 274 | /* The new timer expires before the current timer. */ |
310 | set_vtimer(expires); | 275 | atomic64_set(&virt_timer_current, timer->expires); |
311 | vq->elapsed += vq->timer - left; | 276 | /* Insert new timer into the list. */ |
312 | vq->timer = expires; | 277 | list_add_sorted(timer, &virt_timer_list); |
313 | } else { | ||
314 | vq->elapsed += vq->timer - left; | ||
315 | vq->timer = left; | ||
316 | } | ||
317 | /* Insert new timer into per cpu list. */ | ||
318 | timer->expires += vq->elapsed; | ||
319 | list_add_sorted(timer, &vq->list); | ||
320 | } | 278 | } |
321 | |||
322 | spin_unlock_irqrestore(&vq->lock, flags); | ||
323 | /* release CPU acquired in prepare_vtimer or mod_virt_timer() */ | ||
324 | put_cpu(); | ||
325 | } | 279 | } |
326 | 280 | ||
327 | static inline void prepare_vtimer(struct vtimer_list *timer) | 281 | static void __add_vtimer(struct vtimer_list *timer, int periodic) |
328 | { | 282 | { |
329 | BUG_ON(!timer->function); | 283 | unsigned long flags; |
330 | BUG_ON(!timer->expires || timer->expires > VTIMER_MAX_SLICE); | 284 | |
331 | BUG_ON(vtimer_pending(timer)); | 285 | timer->interval = periodic ? timer->expires : 0; |
332 | timer->cpu = get_cpu(); | 286 | spin_lock_irqsave(&virt_timer_lock, flags); |
287 | internal_add_vtimer(timer); | ||
288 | spin_unlock_irqrestore(&virt_timer_lock, flags); | ||
333 | } | 289 | } |
334 | 290 | ||
335 | /* | 291 | /* |
336 | * add_virt_timer - add an oneshot virtual CPU timer | 292 | * add_virt_timer - add an oneshot virtual CPU timer |
337 | */ | 293 | */ |
338 | void add_virt_timer(void *new) | 294 | void add_virt_timer(struct vtimer_list *timer) |
339 | { | 295 | { |
340 | struct vtimer_list *timer; | 296 | __add_vtimer(timer, 0); |
341 | |||
342 | timer = (struct vtimer_list *)new; | ||
343 | prepare_vtimer(timer); | ||
344 | timer->interval = 0; | ||
345 | internal_add_vtimer(timer); | ||
346 | } | 297 | } |
347 | EXPORT_SYMBOL(add_virt_timer); | 298 | EXPORT_SYMBOL(add_virt_timer); |
348 | 299 | ||
349 | /* | 300 | /* |
350 | * add_virt_timer_int - add an interval virtual CPU timer | 301 | * add_virt_timer_int - add an interval virtual CPU timer |
351 | */ | 302 | */ |
352 | void add_virt_timer_periodic(void *new) | 303 | void add_virt_timer_periodic(struct vtimer_list *timer) |
353 | { | 304 | { |
354 | struct vtimer_list *timer; | 305 | __add_vtimer(timer, 1); |
355 | |||
356 | timer = (struct vtimer_list *)new; | ||
357 | prepare_vtimer(timer); | ||
358 | timer->interval = timer->expires; | ||
359 | internal_add_vtimer(timer); | ||
360 | } | 306 | } |
361 | EXPORT_SYMBOL(add_virt_timer_periodic); | 307 | EXPORT_SYMBOL(add_virt_timer_periodic); |
362 | 308 | ||
363 | static int __mod_vtimer(struct vtimer_list *timer, __u64 expires, int periodic) | 309 | static int __mod_vtimer(struct vtimer_list *timer, u64 expires, int periodic) |
364 | { | 310 | { |
365 | struct vtimer_queue *vq; | ||
366 | unsigned long flags; | 311 | unsigned long flags; |
367 | int cpu; | 312 | int rc; |
368 | 313 | ||
369 | BUG_ON(!timer->function); | 314 | BUG_ON(!timer->function); |
370 | BUG_ON(!expires || expires > VTIMER_MAX_SLICE); | ||
371 | 315 | ||
372 | if (timer->expires == expires && vtimer_pending(timer)) | 316 | if (timer->expires == expires && vtimer_pending(timer)) |
373 | return 1; | 317 | return 1; |
374 | 318 | spin_lock_irqsave(&virt_timer_lock, flags); | |
375 | cpu = get_cpu(); | 319 | rc = vtimer_pending(timer); |
376 | vq = &per_cpu(virt_cpu_timer, cpu); | 320 | if (rc) |
377 | 321 | list_del_init(&timer->entry); | |
378 | /* disable interrupts before test if timer is pending */ | 322 | timer->interval = periodic ? expires : 0; |
379 | spin_lock_irqsave(&vq->lock, flags); | ||
380 | |||
381 | /* if timer isn't pending add it on the current CPU */ | ||
382 | if (!vtimer_pending(timer)) { | ||
383 | spin_unlock_irqrestore(&vq->lock, flags); | ||
384 | |||
385 | if (periodic) | ||
386 | timer->interval = expires; | ||
387 | else | ||
388 | timer->interval = 0; | ||
389 | timer->expires = expires; | ||
390 | timer->cpu = cpu; | ||
391 | internal_add_vtimer(timer); | ||
392 | return 0; | ||
393 | } | ||
394 | |||
395 | /* check if we run on the right CPU */ | ||
396 | BUG_ON(timer->cpu != cpu); | ||
397 | |||
398 | list_del_init(&timer->entry); | ||
399 | timer->expires = expires; | 323 | timer->expires = expires; |
400 | if (periodic) | ||
401 | timer->interval = expires; | ||
402 | |||
403 | /* the timer can't expire anymore so we can release the lock */ | ||
404 | spin_unlock_irqrestore(&vq->lock, flags); | ||
405 | internal_add_vtimer(timer); | 324 | internal_add_vtimer(timer); |
406 | return 1; | 325 | spin_unlock_irqrestore(&virt_timer_lock, flags); |
326 | return rc; | ||
407 | } | 327 | } |
408 | 328 | ||
409 | /* | 329 | /* |
410 | * If we change a pending timer the function must be called on the CPU | ||
411 | * where the timer is running on. | ||
412 | * | ||
413 | * returns whether it has modified a pending timer (1) or not (0) | 330 | * returns whether it has modified a pending timer (1) or not (0) |
414 | */ | 331 | */ |
415 | int mod_virt_timer(struct vtimer_list *timer, __u64 expires) | 332 | int mod_virt_timer(struct vtimer_list *timer, u64 expires) |
416 | { | 333 | { |
417 | return __mod_vtimer(timer, expires, 0); | 334 | return __mod_vtimer(timer, expires, 0); |
418 | } | 335 | } |
419 | EXPORT_SYMBOL(mod_virt_timer); | 336 | EXPORT_SYMBOL(mod_virt_timer); |
420 | 337 | ||
421 | /* | 338 | /* |
422 | * If we change a pending timer the function must be called on the CPU | ||
423 | * where the timer is running on. | ||
424 | * | ||
425 | * returns whether it has modified a pending timer (1) or not (0) | 339 | * returns whether it has modified a pending timer (1) or not (0) |
426 | */ | 340 | */ |
427 | int mod_virt_timer_periodic(struct vtimer_list *timer, __u64 expires) | 341 | int mod_virt_timer_periodic(struct vtimer_list *timer, u64 expires) |
428 | { | 342 | { |
429 | return __mod_vtimer(timer, expires, 1); | 343 | return __mod_vtimer(timer, expires, 1); |
430 | } | 344 | } |
431 | EXPORT_SYMBOL(mod_virt_timer_periodic); | 345 | EXPORT_SYMBOL(mod_virt_timer_periodic); |
432 | 346 | ||
433 | /* | 347 | /* |
434 | * delete a virtual timer | 348 | * Delete a virtual timer. |
435 | * | 349 | * |
436 | * returns whether the deleted timer was pending (1) or not (0) | 350 | * returns whether the deleted timer was pending (1) or not (0) |
437 | */ | 351 | */ |
438 | int del_virt_timer(struct vtimer_list *timer) | 352 | int del_virt_timer(struct vtimer_list *timer) |
439 | { | 353 | { |
440 | unsigned long flags; | 354 | unsigned long flags; |
441 | struct vtimer_queue *vq; | ||
442 | 355 | ||
443 | /* check if timer is pending */ | ||
444 | if (!vtimer_pending(timer)) | 356 | if (!vtimer_pending(timer)) |
445 | return 0; | 357 | return 0; |
446 | 358 | spin_lock_irqsave(&virt_timer_lock, flags); | |
447 | vq = &per_cpu(virt_cpu_timer, timer->cpu); | ||
448 | spin_lock_irqsave(&vq->lock, flags); | ||
449 | |||
450 | /* we don't interrupt a running timer, just let it expire! */ | ||
451 | list_del_init(&timer->entry); | 359 | list_del_init(&timer->entry); |
452 | 360 | spin_unlock_irqrestore(&virt_timer_lock, flags); | |
453 | spin_unlock_irqrestore(&vq->lock, flags); | ||
454 | return 1; | 361 | return 1; |
455 | } | 362 | } |
456 | EXPORT_SYMBOL(del_virt_timer); | 363 | EXPORT_SYMBOL(del_virt_timer); |
@@ -458,20 +365,10 @@ EXPORT_SYMBOL(del_virt_timer); | |||
458 | /* | 365 | /* |
459 | * Start the virtual CPU timer on the current CPU. | 366 | * Start the virtual CPU timer on the current CPU. |
460 | */ | 367 | */ |
461 | void init_cpu_vtimer(void) | 368 | void __cpuinit init_cpu_vtimer(void) |
462 | { | 369 | { |
463 | struct vtimer_queue *vq; | ||
464 | |||
465 | /* initialize per cpu vtimer structure */ | ||
466 | vq = &__get_cpu_var(virt_cpu_timer); | ||
467 | INIT_LIST_HEAD(&vq->list); | ||
468 | spin_lock_init(&vq->lock); | ||
469 | |||
470 | /* enable cpu timer interrupts */ | ||
471 | __ctl_set_bit(0,10); | ||
472 | |||
473 | /* set initial cpu timer */ | 370 | /* set initial cpu timer */ |
474 | set_vtimer(0x7fffffffffffffffULL); | 371 | set_vtimer(VTIMER_MAX_SLICE); |
475 | } | 372 | } |
476 | 373 | ||
477 | static int __cpuinit s390_nohz_notify(struct notifier_block *self, | 374 | static int __cpuinit s390_nohz_notify(struct notifier_block *self, |
@@ -493,12 +390,7 @@ static int __cpuinit s390_nohz_notify(struct notifier_block *self, | |||
493 | 390 | ||
494 | void __init vtime_init(void) | 391 | void __init vtime_init(void) |
495 | { | 392 | { |
496 | /* request the cpu timer external interrupt */ | ||
497 | if (register_external_interrupt(0x1005, do_cpu_timer_interrupt)) | ||
498 | panic("Couldn't request external interrupt 0x1005"); | ||
499 | |||
500 | /* Enable cpu timer interrupts on the boot cpu. */ | 393 | /* Enable cpu timer interrupts on the boot cpu. */ |
501 | init_cpu_vtimer(); | 394 | init_cpu_vtimer(); |
502 | cpu_notifier(s390_nohz_notify, 0); | 395 | cpu_notifier(s390_nohz_notify, 0); |
503 | } | 396 | } |
504 | |||
diff --git a/arch/s390/kvm/diag.c b/arch/s390/kvm/diag.c index b23d9ac77dfc..c88bb7793390 100644 --- a/arch/s390/kvm/diag.c +++ b/arch/s390/kvm/diag.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * diag.c - handling diagnose instructions | 2 | * handling diagnose instructions |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008,2011 | 4 | * Copyright IBM Corp. 2008, 2011 |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License (version 2 only) | 7 | * it under the terms of the GNU General Public License (version 2 only) |
diff --git a/arch/s390/kvm/gaccess.h b/arch/s390/kvm/gaccess.h index c86f6ae43f76..4703f129e95e 100644 --- a/arch/s390/kvm/gaccess.h +++ b/arch/s390/kvm/gaccess.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * access.h - access guest memory | 2 | * access guest memory |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008,2009 | 4 | * Copyright IBM Corp. 2008, 2009 |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License (version 2 only) | 7 | * it under the terms of the GNU General Public License (version 2 only) |
diff --git a/arch/s390/kvm/intercept.c b/arch/s390/kvm/intercept.c index 979cbe55bf5e..adae539f12e2 100644 --- a/arch/s390/kvm/intercept.c +++ b/arch/s390/kvm/intercept.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * intercept.c - in-kernel handling for sie intercepts | 2 | * in-kernel handling for sie intercepts |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008,2009 | 4 | * Copyright IBM Corp. 2008, 2009 |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License (version 2 only) | 7 | * it under the terms of the GNU General Public License (version 2 only) |
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c index 2d9f9a72bb81..b7bc1aac8ed2 100644 --- a/arch/s390/kvm/interrupt.c +++ b/arch/s390/kvm/interrupt.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * interrupt.c - handling kvm guest interrupts | 2 | * handling kvm guest interrupts |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008 | 4 | * Copyright IBM Corp. 2008 |
5 | * | 5 | * |
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index 664766d0c83c..c552d1f4103f 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * s390host.c -- hosting zSeries kernel virtual machines | 2 | * hosting zSeries kernel virtual machines |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008,2009 | 4 | * Copyright IBM Corp. 2008, 2009 |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License (version 2 only) | 7 | * it under the terms of the GNU General Public License (version 2 only) |
diff --git a/arch/s390/kvm/kvm-s390.h b/arch/s390/kvm/kvm-s390.h index 2294377975e8..d75bc5e92c5b 100644 --- a/arch/s390/kvm/kvm-s390.h +++ b/arch/s390/kvm/kvm-s390.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * kvm_s390.h - definition for kvm on s390 | 2 | * definition for kvm on s390 |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008,2009 | 4 | * Copyright IBM Corp. 2008, 2009 |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License (version 2 only) | 7 | * it under the terms of the GNU General Public License (version 2 only) |
diff --git a/arch/s390/kvm/priv.c b/arch/s390/kvm/priv.c index 68a6b2ed16bf..60da903d6f3e 100644 --- a/arch/s390/kvm/priv.c +++ b/arch/s390/kvm/priv.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * priv.c - handling privileged instructions | 2 | * handling privileged instructions |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008 | 4 | * Copyright IBM Corp. 2008 |
5 | * | 5 | * |
diff --git a/arch/s390/kvm/sigp.c b/arch/s390/kvm/sigp.c index 0ad4cf238391..1ab2ce1611c5 100644 --- a/arch/s390/kvm/sigp.c +++ b/arch/s390/kvm/sigp.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * sigp.c - handlinge interprocessor communication | 2 | * handling interprocessor communication |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008,2009 | 4 | * Copyright IBM Corp. 2008, 2009 |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License (version 2 only) | 7 | * it under the terms of the GNU General Public License (version 2 only) |
@@ -15,38 +15,10 @@ | |||
15 | #include <linux/kvm.h> | 15 | #include <linux/kvm.h> |
16 | #include <linux/kvm_host.h> | 16 | #include <linux/kvm_host.h> |
17 | #include <linux/slab.h> | 17 | #include <linux/slab.h> |
18 | #include <asm/sigp.h> | ||
18 | #include "gaccess.h" | 19 | #include "gaccess.h" |
19 | #include "kvm-s390.h" | 20 | #include "kvm-s390.h" |
20 | 21 | ||
21 | /* sigp order codes */ | ||
22 | #define SIGP_SENSE 0x01 | ||
23 | #define SIGP_EXTERNAL_CALL 0x02 | ||
24 | #define SIGP_EMERGENCY 0x03 | ||
25 | #define SIGP_START 0x04 | ||
26 | #define SIGP_STOP 0x05 | ||
27 | #define SIGP_RESTART 0x06 | ||
28 | #define SIGP_STOP_STORE_STATUS 0x09 | ||
29 | #define SIGP_INITIAL_CPU_RESET 0x0b | ||
30 | #define SIGP_CPU_RESET 0x0c | ||
31 | #define SIGP_SET_PREFIX 0x0d | ||
32 | #define SIGP_STORE_STATUS_ADDR 0x0e | ||
33 | #define SIGP_SET_ARCH 0x12 | ||
34 | #define SIGP_SENSE_RUNNING 0x15 | ||
35 | |||
36 | /* cpu status bits */ | ||
37 | #define SIGP_STAT_EQUIPMENT_CHECK 0x80000000UL | ||
38 | #define SIGP_STAT_NOT_RUNNING 0x00000400UL | ||
39 | #define SIGP_STAT_INCORRECT_STATE 0x00000200UL | ||
40 | #define SIGP_STAT_INVALID_PARAMETER 0x00000100UL | ||
41 | #define SIGP_STAT_EXT_CALL_PENDING 0x00000080UL | ||
42 | #define SIGP_STAT_STOPPED 0x00000040UL | ||
43 | #define SIGP_STAT_OPERATOR_INTERV 0x00000020UL | ||
44 | #define SIGP_STAT_CHECK_STOP 0x00000010UL | ||
45 | #define SIGP_STAT_INOPERATIVE 0x00000004UL | ||
46 | #define SIGP_STAT_INVALID_ORDER 0x00000002UL | ||
47 | #define SIGP_STAT_RECEIVER_CHECK 0x00000001UL | ||
48 | |||
49 | |||
50 | static int __sigp_sense(struct kvm_vcpu *vcpu, u16 cpu_addr, | 22 | static int __sigp_sense(struct kvm_vcpu *vcpu, u16 cpu_addr, |
51 | u64 *reg) | 23 | u64 *reg) |
52 | { | 24 | { |
@@ -65,7 +37,7 @@ static int __sigp_sense(struct kvm_vcpu *vcpu, u16 cpu_addr, | |||
65 | rc = 1; /* status stored */ | 37 | rc = 1; /* status stored */ |
66 | } else { | 38 | } else { |
67 | *reg &= 0xffffffff00000000UL; | 39 | *reg &= 0xffffffff00000000UL; |
68 | *reg |= SIGP_STAT_STOPPED; | 40 | *reg |= SIGP_STATUS_STOPPED; |
69 | rc = 1; /* status stored */ | 41 | rc = 1; /* status stored */ |
70 | } | 42 | } |
71 | spin_unlock(&fi->lock); | 43 | spin_unlock(&fi->lock); |
@@ -235,7 +207,7 @@ static int __sigp_set_prefix(struct kvm_vcpu *vcpu, u16 cpu_addr, u32 address, | |||
235 | address = address & 0x7fffe000u; | 207 | address = address & 0x7fffe000u; |
236 | if (copy_from_guest_absolute(vcpu, &tmp, address, 1) || | 208 | if (copy_from_guest_absolute(vcpu, &tmp, address, 1) || |
237 | copy_from_guest_absolute(vcpu, &tmp, address + PAGE_SIZE, 1)) { | 209 | copy_from_guest_absolute(vcpu, &tmp, address + PAGE_SIZE, 1)) { |
238 | *reg |= SIGP_STAT_INVALID_PARAMETER; | 210 | *reg |= SIGP_STATUS_INVALID_PARAMETER; |
239 | return 1; /* invalid parameter */ | 211 | return 1; /* invalid parameter */ |
240 | } | 212 | } |
241 | 213 | ||
@@ -249,7 +221,7 @@ static int __sigp_set_prefix(struct kvm_vcpu *vcpu, u16 cpu_addr, u32 address, | |||
249 | 221 | ||
250 | if (li == NULL) { | 222 | if (li == NULL) { |
251 | rc = 1; /* incorrect state */ | 223 | rc = 1; /* incorrect state */ |
252 | *reg &= SIGP_STAT_INCORRECT_STATE; | 224 | *reg &= SIGP_STATUS_INCORRECT_STATE; |
253 | kfree(inti); | 225 | kfree(inti); |
254 | goto out_fi; | 226 | goto out_fi; |
255 | } | 227 | } |
@@ -258,7 +230,7 @@ static int __sigp_set_prefix(struct kvm_vcpu *vcpu, u16 cpu_addr, u32 address, | |||
258 | /* cpu must be in stopped state */ | 230 | /* cpu must be in stopped state */ |
259 | if (!(atomic_read(li->cpuflags) & CPUSTAT_STOPPED)) { | 231 | if (!(atomic_read(li->cpuflags) & CPUSTAT_STOPPED)) { |
260 | rc = 1; /* incorrect state */ | 232 | rc = 1; /* incorrect state */ |
261 | *reg &= SIGP_STAT_INCORRECT_STATE; | 233 | *reg &= SIGP_STATUS_INCORRECT_STATE; |
262 | kfree(inti); | 234 | kfree(inti); |
263 | goto out_li; | 235 | goto out_li; |
264 | } | 236 | } |
@@ -300,7 +272,7 @@ static int __sigp_sense_running(struct kvm_vcpu *vcpu, u16 cpu_addr, | |||
300 | } else { | 272 | } else { |
301 | /* not running */ | 273 | /* not running */ |
302 | *reg &= 0xffffffff00000000UL; | 274 | *reg &= 0xffffffff00000000UL; |
303 | *reg |= SIGP_STAT_NOT_RUNNING; | 275 | *reg |= SIGP_STATUS_NOT_RUNNING; |
304 | rc = 0; | 276 | rc = 0; |
305 | } | 277 | } |
306 | } | 278 | } |
@@ -375,7 +347,7 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu) | |||
375 | vcpu->stat.instruction_sigp_external_call++; | 347 | vcpu->stat.instruction_sigp_external_call++; |
376 | rc = __sigp_external_call(vcpu, cpu_addr); | 348 | rc = __sigp_external_call(vcpu, cpu_addr); |
377 | break; | 349 | break; |
378 | case SIGP_EMERGENCY: | 350 | case SIGP_EMERGENCY_SIGNAL: |
379 | vcpu->stat.instruction_sigp_emergency++; | 351 | vcpu->stat.instruction_sigp_emergency++; |
380 | rc = __sigp_emergency(vcpu, cpu_addr); | 352 | rc = __sigp_emergency(vcpu, cpu_addr); |
381 | break; | 353 | break; |
@@ -383,12 +355,12 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu) | |||
383 | vcpu->stat.instruction_sigp_stop++; | 355 | vcpu->stat.instruction_sigp_stop++; |
384 | rc = __sigp_stop(vcpu, cpu_addr, ACTION_STOP_ON_STOP); | 356 | rc = __sigp_stop(vcpu, cpu_addr, ACTION_STOP_ON_STOP); |
385 | break; | 357 | break; |
386 | case SIGP_STOP_STORE_STATUS: | 358 | case SIGP_STOP_AND_STORE_STATUS: |
387 | vcpu->stat.instruction_sigp_stop++; | 359 | vcpu->stat.instruction_sigp_stop++; |
388 | rc = __sigp_stop(vcpu, cpu_addr, ACTION_STORE_ON_STOP | | 360 | rc = __sigp_stop(vcpu, cpu_addr, ACTION_STORE_ON_STOP | |
389 | ACTION_STOP_ON_STOP); | 361 | ACTION_STOP_ON_STOP); |
390 | break; | 362 | break; |
391 | case SIGP_SET_ARCH: | 363 | case SIGP_SET_ARCHITECTURE: |
392 | vcpu->stat.instruction_sigp_arch++; | 364 | vcpu->stat.instruction_sigp_arch++; |
393 | rc = __sigp_set_arch(vcpu, parameter); | 365 | rc = __sigp_set_arch(vcpu, parameter); |
394 | break; | 366 | break; |
diff --git a/arch/s390/lib/delay.c b/arch/s390/lib/delay.c index 9f1f71e85778..42d0cf89121d 100644 --- a/arch/s390/lib/delay.c +++ b/arch/s390/lib/delay.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Precise Delay Loops for S390 | 2 | * Precise Delay Loops for S390 |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 1999,2008 | 4 | * Copyright IBM Corp. 1999, 2008 |
5 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>, | 5 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>, |
6 | * Heiko Carstens <heiko.carstens@de.ibm.com>, | 6 | * Heiko Carstens <heiko.carstens@de.ibm.com>, |
7 | */ | 7 | */ |
@@ -12,8 +12,8 @@ | |||
12 | #include <linux/module.h> | 12 | #include <linux/module.h> |
13 | #include <linux/irqflags.h> | 13 | #include <linux/irqflags.h> |
14 | #include <linux/interrupt.h> | 14 | #include <linux/interrupt.h> |
15 | #include <asm/vtimer.h> | ||
15 | #include <asm/div64.h> | 16 | #include <asm/div64.h> |
16 | #include <asm/timer.h> | ||
17 | 17 | ||
18 | void __delay(unsigned long loops) | 18 | void __delay(unsigned long loops) |
19 | { | 19 | { |
diff --git a/arch/s390/lib/div64.c b/arch/s390/lib/div64.c index d9e62c0b576a..261152f83242 100644 --- a/arch/s390/lib/div64.c +++ b/arch/s390/lib/div64.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/lib/div64.c | ||
3 | * | ||
4 | * __div64_32 implementation for 31 bit. | 2 | * __div64_32 implementation for 31 bit. |
5 | * | 3 | * |
6 | * Copyright (C) IBM Corp. 2006 | 4 | * Copyright IBM Corp. 2006 |
7 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 5 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
8 | */ | 6 | */ |
9 | 7 | ||
diff --git a/arch/s390/lib/spinlock.c b/arch/s390/lib/spinlock.c index 093eb694d9c1..f709983f41f8 100644 --- a/arch/s390/lib/spinlock.c +++ b/arch/s390/lib/spinlock.c | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/lib/spinlock.c | ||
3 | * Out of line spinlock code. | 2 | * Out of line spinlock code. |
4 | * | 3 | * |
5 | * Copyright (C) IBM Corp. 2004, 2006 | 4 | * Copyright IBM Corp. 2004, 2006 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 5 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
7 | */ | 6 | */ |
8 | 7 | ||
diff --git a/arch/s390/lib/string.c b/arch/s390/lib/string.c index 4143b7c19096..846ec64ab2c9 100644 --- a/arch/s390/lib/string.c +++ b/arch/s390/lib/string.c | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/lib/string.c | ||
3 | * Optimized string functions | 2 | * Optimized string functions |
4 | * | 3 | * |
5 | * S390 version | 4 | * S390 version |
6 | * Copyright (C) 2004 IBM Deutschland Entwicklung GmbH, IBM Corporation | 5 | * Copyright IBM Corp. 2004 |
7 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
8 | */ | 7 | */ |
9 | 8 | ||
diff --git a/arch/s390/lib/uaccess.h b/arch/s390/lib/uaccess.h index 1d2536cb630b..315dbe09983e 100644 --- a/arch/s390/lib/uaccess.h +++ b/arch/s390/lib/uaccess.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/uaccess.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * | 3 | * |
6 | */ | 4 | */ |
diff --git a/arch/s390/lib/uaccess_mvcos.c b/arch/s390/lib/uaccess_mvcos.c index 58a75a8ae90c..2443ae476e33 100644 --- a/arch/s390/lib/uaccess_mvcos.c +++ b/arch/s390/lib/uaccess_mvcos.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/lib/uaccess_mvcos.c | ||
3 | * | ||
4 | * Optimized user space space access functions based on mvcos. | 2 | * Optimized user space space access functions based on mvcos. |
5 | * | 3 | * |
6 | * Copyright (C) IBM Corp. 2006 | 4 | * Copyright IBM Corp. 2006 |
7 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 5 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
8 | * Gerald Schaefer (gerald.schaefer@de.ibm.com) | 6 | * Gerald Schaefer (gerald.schaefer@de.ibm.com) |
9 | */ | 7 | */ |
diff --git a/arch/s390/lib/uaccess_pt.c b/arch/s390/lib/uaccess_pt.c index 342ae35a5ba9..60ee2b883797 100644 --- a/arch/s390/lib/uaccess_pt.c +++ b/arch/s390/lib/uaccess_pt.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/lib/uaccess_pt.c | ||
3 | * | ||
4 | * User access functions based on page table walks for enhanced | 2 | * User access functions based on page table walks for enhanced |
5 | * system layout without hardware support. | 3 | * system layout without hardware support. |
6 | * | 4 | * |
diff --git a/arch/s390/lib/uaccess_std.c b/arch/s390/lib/uaccess_std.c index 57e94298539b..6fbd06338270 100644 --- a/arch/s390/lib/uaccess_std.c +++ b/arch/s390/lib/uaccess_std.c | |||
@@ -1,10 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/lib/uaccess_std.c | ||
3 | * | ||
4 | * Standard user space access functions based on mvcp/mvcs and doing | 2 | * Standard user space access functions based on mvcp/mvcs and doing |
5 | * interesting things in the secondary space mode. | 3 | * interesting things in the secondary space mode. |
6 | * | 4 | * |
7 | * Copyright (C) IBM Corp. 2006 | 5 | * Copyright IBM Corp. 2006 |
8 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
9 | * Gerald Schaefer (gerald.schaefer@de.ibm.com) | 7 | * Gerald Schaefer (gerald.schaefer@de.ibm.com) |
10 | */ | 8 | */ |
diff --git a/arch/s390/math-emu/math.c b/arch/s390/math-emu/math.c index cd4e9c168dd7..58bff541fde9 100644 --- a/arch/s390/math-emu/math.c +++ b/arch/s390/math-emu/math.c | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/math-emu/math.c | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999-2001 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999, 2001 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 4 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
7 | * | 5 | * |
8 | * 'math.c' emulates IEEE instructions on a S390 processor | 6 | * 'math.c' emulates IEEE instructions on a S390 processor |
diff --git a/arch/s390/mm/cmm.c b/arch/s390/mm/cmm.c index 1f1dba9dcf58..479e94282910 100644 --- a/arch/s390/mm/cmm.c +++ b/arch/s390/mm/cmm.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Collaborative memory management interface. | 2 | * Collaborative memory management interface. |
3 | * | 3 | * |
4 | * Copyright IBM Corp 2003,2010 | 4 | * Copyright IBM Corp 2003, 2010 |
5 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>, | 5 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>, |
6 | * | 6 | * |
7 | */ | 7 | */ |
diff --git a/arch/s390/mm/extmem.c b/arch/s390/mm/extmem.c index 075ddada4911..519bba716cc3 100644 --- a/arch/s390/mm/extmem.c +++ b/arch/s390/mm/extmem.c | |||
@@ -1,10 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: arch/s390/mm/extmem.c | ||
3 | * Author(s)......: Carsten Otte <cotte@de.ibm.com> | 2 | * Author(s)......: Carsten Otte <cotte@de.ibm.com> |
4 | * Rob M van der Heij <rvdheij@nl.ibm.com> | 3 | * Rob M van der Heij <rvdheij@nl.ibm.com> |
5 | * Steven Shultz <shultzss@us.ibm.com> | 4 | * Steven Shultz <shultzss@us.ibm.com> |
6 | * Bugreports.to..: <Linux390@de.ibm.com> | 5 | * Bugreports.to..: <Linux390@de.ibm.com> |
7 | * (C) IBM Corporation 2002-2004 | 6 | * Copyright IBM Corp. 2002, 2004 |
8 | */ | 7 | */ |
9 | 8 | ||
10 | #define KMSG_COMPONENT "extmem" | 9 | #define KMSG_COMPONENT "extmem" |
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c index 72cec9ecd96c..6a12d1bb6e09 100644 --- a/arch/s390/mm/fault.c +++ b/arch/s390/mm/fault.c | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/mm/fault.c | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
6 | * Author(s): Hartmut Penner (hp@de.ibm.com) | 4 | * Author(s): Hartmut Penner (hp@de.ibm.com) |
7 | * Ulrich Weigand (uweigand@de.ibm.com) | 5 | * Ulrich Weigand (uweigand@de.ibm.com) |
8 | * | 6 | * |
diff --git a/arch/s390/mm/hugetlbpage.c b/arch/s390/mm/hugetlbpage.c index 900de2b3cf28..532525ec88c1 100644 --- a/arch/s390/mm/hugetlbpage.c +++ b/arch/s390/mm/hugetlbpage.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * IBM System z Huge TLB Page Support for Kernel. | 2 | * IBM System z Huge TLB Page Support for Kernel. |
3 | * | 3 | * |
4 | * Copyright 2007 IBM Corp. | 4 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Gerald Schaefer <gerald.schaefer@de.ibm.com> | 5 | * Author(s): Gerald Schaefer <gerald.schaefer@de.ibm.com> |
6 | */ | 6 | */ |
7 | 7 | ||
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c index 2bea0605856e..6adbc082618a 100644 --- a/arch/s390/mm/init.c +++ b/arch/s390/mm/init.c | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/mm/init.c | ||
3 | * | ||
4 | * S390 version | 2 | * S390 version |
5 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 1999 |
6 | * Author(s): Hartmut Penner (hp@de.ibm.com) | 4 | * Author(s): Hartmut Penner (hp@de.ibm.com) |
7 | * | 5 | * |
8 | * Derived from "arch/i386/mm/init.c" | 6 | * Derived from "arch/i386/mm/init.c" |
diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c index 2857c48486ea..573384256c5c 100644 --- a/arch/s390/mm/mmap.c +++ b/arch/s390/mm/mmap.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/s390/mm/mmap.c | ||
3 | * | ||
4 | * flexible mmap layout support | 2 | * flexible mmap layout support |
5 | * | 3 | * |
6 | * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina. | 4 | * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina. |
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c index a3db5a3ea083..1cab221077cc 100644 --- a/arch/s390/mm/pgtable.c +++ b/arch/s390/mm/pgtable.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 2007,2011 | 2 | * Copyright IBM Corp. 2007, 2011 |
3 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> | 3 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> |
4 | */ | 4 | */ |
5 | 5 | ||
diff --git a/arch/s390/mm/vmem.c b/arch/s390/mm/vmem.c index 71ae20df674e..6f896e75ab49 100644 --- a/arch/s390/mm/vmem.c +++ b/arch/s390/mm/vmem.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/mm/vmem.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2006 | 2 | * Copyright IBM Corp. 2006 |
5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | 3 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> |
6 | */ | 4 | */ |
diff --git a/arch/s390/oprofile/backtrace.c b/arch/s390/oprofile/backtrace.c index bc4b84a35cad..c82f62fb9c28 100644 --- a/arch/s390/oprofile/backtrace.c +++ b/arch/s390/oprofile/backtrace.c | |||
@@ -1,8 +1,6 @@ | |||
1 | /** | 1 | /* |
2 | * arch/s390/oprofile/backtrace.c | ||
3 | * | ||
4 | * S390 Version | 2 | * S390 Version |
5 | * Copyright (C) 2005 IBM Corporation, IBM Deutschland Entwicklung GmbH. | 3 | * Copyright IBM Corp. 2005 |
6 | * Author(s): Andreas Krebbel <Andreas.Krebbel@de.ibm.com> | 4 | * Author(s): Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
7 | */ | 5 | */ |
8 | 6 | ||
diff --git a/arch/s390/oprofile/hwsampler.c b/arch/s390/oprofile/hwsampler.c index a4a89fa980d6..0cb385da202c 100644 --- a/arch/s390/oprofile/hwsampler.c +++ b/arch/s390/oprofile/hwsampler.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /** | 1 | /* |
2 | * arch/s390/oprofile/hwsampler.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2010 | 2 | * Copyright IBM Corp. 2010 |
5 | * Author: Heinz Graalfs <graalfs@de.ibm.com> | 3 | * Author: Heinz Graalfs <graalfs@de.ibm.com> |
6 | */ | 4 | */ |
diff --git a/arch/s390/oprofile/init.c b/arch/s390/oprofile/init.c index 2297be406c61..a1e9d69a9c90 100644 --- a/arch/s390/oprofile/init.c +++ b/arch/s390/oprofile/init.c | |||
@@ -1,8 +1,6 @@ | |||
1 | /** | 1 | /* |
2 | * arch/s390/oprofile/init.c | ||
3 | * | ||
4 | * S390 Version | 2 | * S390 Version |
5 | * Copyright (C) 2002-2011 IBM Deutschland Entwicklung GmbH, IBM Corporation | 3 | * Copyright IBM Corp. 2002, 2011 |
6 | * Author(s): Thomas Spatzier (tspat@de.ibm.com) | 4 | * Author(s): Thomas Spatzier (tspat@de.ibm.com) |
7 | * Author(s): Mahesh Salgaonkar (mahesh@linux.vnet.ibm.com) | 5 | * Author(s): Mahesh Salgaonkar (mahesh@linux.vnet.ibm.com) |
8 | * Author(s): Heinz Graalfs (graalfs@linux.vnet.ibm.com) | 6 | * Author(s): Heinz Graalfs (graalfs@linux.vnet.ibm.com) |
diff --git a/arch/s390/oprofile/op_counter.h b/arch/s390/oprofile/op_counter.h index 1a8d3ca09014..61b2531eef17 100644 --- a/arch/s390/oprofile/op_counter.h +++ b/arch/s390/oprofile/op_counter.h | |||
@@ -1,7 +1,5 @@ | |||
1 | /** | 1 | /* |
2 | * arch/s390/oprofile/op_counter.h | 2 | * Copyright IBM Corp. 2011 |
3 | * | ||
4 | * Copyright (C) 2011 IBM Deutschland Entwicklung GmbH, IBM Corporation | ||
5 | * Author(s): Andreas Krebbel (krebbel@linux.vnet.ibm.com) | 3 | * Author(s): Andreas Krebbel (krebbel@linux.vnet.ibm.com) |
6 | * | 4 | * |
7 | * @remark Copyright 2011 OProfile authors | 5 | * @remark Copyright 2011 OProfile authors |
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index f3509120a507..15370a2c5ff0 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd.c | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Horst Hummel <Horst.Hummel@de.ibm.com> | 3 | * Horst Hummel <Horst.Hummel@de.ibm.com> |
5 | * Carsten Otte <Cotte@de.ibm.com> | 4 | * Carsten Otte <Cotte@de.ibm.com> |
@@ -52,7 +51,7 @@ void dasd_int_handler(struct ccw_device *, unsigned long, struct irb *); | |||
52 | 51 | ||
53 | MODULE_AUTHOR("Holger Smolinski <Holger.Smolinski@de.ibm.com>"); | 52 | MODULE_AUTHOR("Holger Smolinski <Holger.Smolinski@de.ibm.com>"); |
54 | MODULE_DESCRIPTION("Linux on S/390 DASD device driver," | 53 | MODULE_DESCRIPTION("Linux on S/390 DASD device driver," |
55 | " Copyright 2000 IBM Corporation"); | 54 | " Copyright IBM Corp. 2000"); |
56 | MODULE_SUPPORTED_DEVICE("dasd"); | 55 | MODULE_SUPPORTED_DEVICE("dasd"); |
57 | MODULE_LICENSE("GPL"); | 56 | MODULE_LICENSE("GPL"); |
58 | 57 | ||
@@ -82,6 +81,7 @@ static void dasd_profile_exit(struct dasd_profile *); | |||
82 | static wait_queue_head_t dasd_init_waitq; | 81 | static wait_queue_head_t dasd_init_waitq; |
83 | static wait_queue_head_t dasd_flush_wq; | 82 | static wait_queue_head_t dasd_flush_wq; |
84 | static wait_queue_head_t generic_waitq; | 83 | static wait_queue_head_t generic_waitq; |
84 | static wait_queue_head_t shutdown_waitq; | ||
85 | 85 | ||
86 | /* | 86 | /* |
87 | * Allocate memory for a new device structure. | 87 | * Allocate memory for a new device structure. |
@@ -1994,6 +1994,8 @@ static void dasd_device_tasklet(struct dasd_device *device) | |||
1994 | /* Now check if the head of the ccw queue needs to be started. */ | 1994 | /* Now check if the head of the ccw queue needs to be started. */ |
1995 | __dasd_device_start_head(device); | 1995 | __dasd_device_start_head(device); |
1996 | spin_unlock_irq(get_ccwdev_lock(device->cdev)); | 1996 | spin_unlock_irq(get_ccwdev_lock(device->cdev)); |
1997 | if (waitqueue_active(&shutdown_waitq)) | ||
1998 | wake_up(&shutdown_waitq); | ||
1997 | dasd_put_device(device); | 1999 | dasd_put_device(device); |
1998 | } | 2000 | } |
1999 | 2001 | ||
@@ -2632,6 +2634,8 @@ static void dasd_block_tasklet(struct dasd_block *block) | |||
2632 | __dasd_block_start_head(block); | 2634 | __dasd_block_start_head(block); |
2633 | spin_unlock(&block->queue_lock); | 2635 | spin_unlock(&block->queue_lock); |
2634 | spin_unlock_irq(&block->request_queue_lock); | 2636 | spin_unlock_irq(&block->request_queue_lock); |
2637 | if (waitqueue_active(&shutdown_waitq)) | ||
2638 | wake_up(&shutdown_waitq); | ||
2635 | dasd_put_device(block->base); | 2639 | dasd_put_device(block->base); |
2636 | } | 2640 | } |
2637 | 2641 | ||
@@ -3474,6 +3478,32 @@ char *dasd_get_sense(struct irb *irb) | |||
3474 | } | 3478 | } |
3475 | EXPORT_SYMBOL_GPL(dasd_get_sense); | 3479 | EXPORT_SYMBOL_GPL(dasd_get_sense); |
3476 | 3480 | ||
3481 | static inline int _wait_for_empty_queues(struct dasd_device *device) | ||
3482 | { | ||
3483 | if (device->block) | ||
3484 | return list_empty(&device->ccw_queue) && | ||
3485 | list_empty(&device->block->ccw_queue); | ||
3486 | else | ||
3487 | return list_empty(&device->ccw_queue); | ||
3488 | } | ||
3489 | |||
3490 | void dasd_generic_shutdown(struct ccw_device *cdev) | ||
3491 | { | ||
3492 | struct dasd_device *device; | ||
3493 | |||
3494 | device = dasd_device_from_cdev(cdev); | ||
3495 | if (IS_ERR(device)) | ||
3496 | return; | ||
3497 | |||
3498 | if (device->block) | ||
3499 | dasd_schedule_block_bh(device->block); | ||
3500 | |||
3501 | dasd_schedule_device_bh(device); | ||
3502 | |||
3503 | wait_event(shutdown_waitq, _wait_for_empty_queues(device)); | ||
3504 | } | ||
3505 | EXPORT_SYMBOL_GPL(dasd_generic_shutdown); | ||
3506 | |||
3477 | static int __init dasd_init(void) | 3507 | static int __init dasd_init(void) |
3478 | { | 3508 | { |
3479 | int rc; | 3509 | int rc; |
@@ -3481,6 +3511,7 @@ static int __init dasd_init(void) | |||
3481 | init_waitqueue_head(&dasd_init_waitq); | 3511 | init_waitqueue_head(&dasd_init_waitq); |
3482 | init_waitqueue_head(&dasd_flush_wq); | 3512 | init_waitqueue_head(&dasd_flush_wq); |
3483 | init_waitqueue_head(&generic_waitq); | 3513 | init_waitqueue_head(&generic_waitq); |
3514 | init_waitqueue_head(&shutdown_waitq); | ||
3484 | 3515 | ||
3485 | /* register 'common' DASD debug area, used for all DBF_XXX calls */ | 3516 | /* register 'common' DASD debug area, used for all DBF_XXX calls */ |
3486 | dasd_debug_area = debug_register("dasd", 1, 1, 8 * sizeof(long)); | 3517 | dasd_debug_area = debug_register("dasd", 1, 1, 8 * sizeof(long)); |
diff --git a/drivers/s390/block/dasd_3990_erp.c b/drivers/s390/block/dasd_3990_erp.c index 0326571e7ffa..f8212d54013a 100644 --- a/drivers/s390/block/dasd_3990_erp.c +++ b/drivers/s390/block/dasd_3990_erp.c | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd_3990_erp.c | ||
3 | * Author(s)......: Horst Hummel <Horst.Hummel@de.ibm.com> | 2 | * Author(s)......: Horst Hummel <Horst.Hummel@de.ibm.com> |
4 | * Holger Smolinski <Holger.Smolinski@de.ibm.com> | 3 | * Holger Smolinski <Holger.Smolinski@de.ibm.com> |
5 | * Bugreports.to..: <Linux390@de.ibm.com> | 4 | * Bugreports.to..: <Linux390@de.ibm.com> |
6 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2000, 2001 | 5 | * Copyright IBM Corp. 2000, 2001 |
7 | * | 6 | * |
8 | */ | 7 | */ |
9 | 8 | ||
diff --git a/drivers/s390/block/dasd_alias.c b/drivers/s390/block/dasd_alias.c index b3beed5434e4..157defe5e069 100644 --- a/drivers/s390/block/dasd_alias.c +++ b/drivers/s390/block/dasd_alias.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * PAV alias management for the DASD ECKD discipline | 2 | * PAV alias management for the DASD ECKD discipline |
3 | * | 3 | * |
4 | * Copyright IBM Corporation, 2007 | 4 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Stefan Weinhuber <wein@de.ibm.com> | 5 | * Author(s): Stefan Weinhuber <wein@de.ibm.com> |
6 | */ | 6 | */ |
7 | 7 | ||
diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c index d71511c7850a..b2b8c18eeced 100644 --- a/drivers/s390/block/dasd_devmap.c +++ b/drivers/s390/block/dasd_devmap.c | |||
@@ -1,11 +1,10 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd_devmap.c | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Horst Hummel <Horst.Hummel@de.ibm.com> | 3 | * Horst Hummel <Horst.Hummel@de.ibm.com> |
5 | * Carsten Otte <Cotte@de.ibm.com> | 4 | * Carsten Otte <Cotte@de.ibm.com> |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 5 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
7 | * Bugreports.to..: <Linux390@de.ibm.com> | 6 | * Bugreports.to..: <Linux390@de.ibm.com> |
8 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2001 | 7 | * Copyright IBM Corp. 1999,2001 |
9 | * | 8 | * |
10 | * Device mapping and dasd= parameter parsing functions. All devmap | 9 | * Device mapping and dasd= parameter parsing functions. All devmap |
11 | * functions may not be called from interrupt context. In particular | 10 | * functions may not be called from interrupt context. In particular |
diff --git a/drivers/s390/block/dasd_diag.c b/drivers/s390/block/dasd_diag.c index 0cea7e98f464..9bd5da36f99e 100644 --- a/drivers/s390/block/dasd_diag.c +++ b/drivers/s390/block/dasd_diag.c | |||
@@ -1,10 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd_diag.c | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Based on.......: linux/drivers/s390/block/mdisk.c | 3 | * Based on.......: linux/drivers/s390/block/mdisk.c |
5 | * ...............: by Hartmunt Penner <hpenner@de.ibm.com> | 4 | * ...............: by Hartmunt Penner <hpenner@de.ibm.com> |
6 | * Bugreports.to..: <Linux390@de.ibm.com> | 5 | * Bugreports.to..: <Linux390@de.ibm.com> |
7 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000 | 6 | * Copyright IBM Corp. 1999, 2000 |
8 | * | 7 | * |
9 | */ | 8 | */ |
10 | 9 | ||
diff --git a/drivers/s390/block/dasd_diag.h b/drivers/s390/block/dasd_diag.h index 4f71fbe60c82..a803cc731586 100644 --- a/drivers/s390/block/dasd_diag.h +++ b/drivers/s390/block/dasd_diag.h | |||
@@ -1,10 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd_diag.h | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Based on.......: linux/drivers/s390/block/mdisk.h | 3 | * Based on.......: linux/drivers/s390/block/mdisk.h |
5 | * ...............: by Hartmunt Penner <hpenner@de.ibm.com> | 4 | * ...............: by Hartmunt Penner <hpenner@de.ibm.com> |
6 | * Bugreports.to..: <Linux390@de.ibm.com> | 5 | * Bugreports.to..: <Linux390@de.ibm.com> |
7 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000 | 6 | * Copyright IBM Corp. 1999, 2000 |
8 | * | 7 | * |
9 | */ | 8 | */ |
10 | 9 | ||
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index bc2e8a7c265b..40a826a7295f 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd_eckd.c | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Horst Hummel <Horst.Hummel@de.ibm.com> | 3 | * Horst Hummel <Horst.Hummel@de.ibm.com> |
5 | * Carsten Otte <Cotte@de.ibm.com> | 4 | * Carsten Otte <Cotte@de.ibm.com> |
@@ -4247,6 +4246,7 @@ static struct ccw_driver dasd_eckd_driver = { | |||
4247 | .set_online = dasd_eckd_set_online, | 4246 | .set_online = dasd_eckd_set_online, |
4248 | .notify = dasd_generic_notify, | 4247 | .notify = dasd_generic_notify, |
4249 | .path_event = dasd_generic_path_event, | 4248 | .path_event = dasd_generic_path_event, |
4249 | .shutdown = dasd_generic_shutdown, | ||
4250 | .freeze = dasd_generic_pm_freeze, | 4250 | .freeze = dasd_generic_pm_freeze, |
4251 | .thaw = dasd_generic_restore_device, | 4251 | .thaw = dasd_generic_restore_device, |
4252 | .restore = dasd_generic_restore_device, | 4252 | .restore = dasd_generic_restore_device, |
diff --git a/drivers/s390/block/dasd_eckd.h b/drivers/s390/block/dasd_eckd.h index 4a688a873a77..2555e494591f 100644 --- a/drivers/s390/block/dasd_eckd.h +++ b/drivers/s390/block/dasd_eckd.h | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd_eckd.h | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Horst Hummel <Horst.Hummel@de.ibm.com> | 3 | * Horst Hummel <Horst.Hummel@de.ibm.com> |
5 | * Bugreports.to..: <Linux390@de.ibm.com> | 4 | * Bugreports.to..: <Linux390@de.ibm.com> |
6 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000 | 5 | * Copyright IBM Corp. 1999, 2000 |
7 | * | 6 | * |
8 | */ | 7 | */ |
9 | 8 | ||
diff --git a/drivers/s390/block/dasd_eer.c b/drivers/s390/block/dasd_eer.c index 16c5208c3dc7..ff901b5509c1 100644 --- a/drivers/s390/block/dasd_eer.c +++ b/drivers/s390/block/dasd_eer.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Character device driver for extended error reporting. | 2 | * Character device driver for extended error reporting. |
3 | * | 3 | * |
4 | * Copyright (C) 2005 IBM Corporation | 4 | * Copyright IBM Corp. 2005 |
5 | * extended error reporting for DASD ECKD devices | 5 | * extended error reporting for DASD ECKD devices |
6 | * Author(s): Stefan Weinhuber <wein@de.ibm.com> | 6 | * Author(s): Stefan Weinhuber <wein@de.ibm.com> |
7 | */ | 7 | */ |
diff --git a/drivers/s390/block/dasd_erp.c b/drivers/s390/block/dasd_erp.c index 0eafe2e421e7..d01ef82f8757 100644 --- a/drivers/s390/block/dasd_erp.c +++ b/drivers/s390/block/dasd_erp.c | |||
@@ -1,11 +1,10 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd.c | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Horst Hummel <Horst.Hummel@de.ibm.com> | 3 | * Horst Hummel <Horst.Hummel@de.ibm.com> |
5 | * Carsten Otte <Cotte@de.ibm.com> | 4 | * Carsten Otte <Cotte@de.ibm.com> |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 5 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
7 | * Bugreports.to..: <Linux390@de.ibm.com> | 6 | * Bugreports.to..: <Linux390@de.ibm.com> |
8 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2001 | 7 | * Copyright IBM Corp. 1999, 2001 |
9 | * | 8 | * |
10 | */ | 9 | */ |
11 | 10 | ||
diff --git a/drivers/s390/block/dasd_fba.c b/drivers/s390/block/dasd_fba.c index a62a75358eb9..fb7f3bdc6604 100644 --- a/drivers/s390/block/dasd_fba.c +++ b/drivers/s390/block/dasd_fba.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd_fba.c | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Bugreports.to..: <Linux390@de.ibm.com> | 3 | * Bugreports.to..: <Linux390@de.ibm.com> |
5 | * Copyright IBM Corp. 1999, 2009 | 4 | * Copyright IBM Corp. 1999, 2009 |
diff --git a/drivers/s390/block/dasd_fba.h b/drivers/s390/block/dasd_fba.h index 14c910baa5fe..b5d3db0e5efb 100644 --- a/drivers/s390/block/dasd_fba.h +++ b/drivers/s390/block/dasd_fba.h | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd_fba.h | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Bugreports.to..: <Linux390@de.ibm.com> | 3 | * Bugreports.to..: <Linux390@de.ibm.com> |
5 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000 | 4 | * Coypright IBM Corp. 1999, 2000 |
6 | * | 5 | * |
7 | */ | 6 | */ |
8 | 7 | ||
diff --git a/drivers/s390/block/dasd_genhd.c b/drivers/s390/block/dasd_genhd.c index 19a1ff03d65e..f64921756ad6 100644 --- a/drivers/s390/block/dasd_genhd.c +++ b/drivers/s390/block/dasd_genhd.c | |||
@@ -1,11 +1,10 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd_genhd.c | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Horst Hummel <Horst.Hummel@de.ibm.com> | 3 | * Horst Hummel <Horst.Hummel@de.ibm.com> |
5 | * Carsten Otte <Cotte@de.ibm.com> | 4 | * Carsten Otte <Cotte@de.ibm.com> |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 5 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
7 | * Bugreports.to..: <Linux390@de.ibm.com> | 6 | * Bugreports.to..: <Linux390@de.ibm.com> |
8 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2001 | 7 | * Copyright IBM Corp. 1999, 2001 |
9 | * | 8 | * |
10 | * gendisk related functions for the dasd driver. | 9 | * gendisk related functions for the dasd driver. |
11 | * | 10 | * |
diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h index c05da00583f0..7ff93eea673d 100644 --- a/drivers/s390/block/dasd_int.h +++ b/drivers/s390/block/dasd_int.h | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd_int.h | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Horst Hummel <Horst.Hummel@de.ibm.com> | 3 | * Horst Hummel <Horst.Hummel@de.ibm.com> |
5 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 4 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
@@ -686,6 +685,7 @@ int dasd_generic_set_offline (struct ccw_device *cdev); | |||
686 | int dasd_generic_notify(struct ccw_device *, int); | 685 | int dasd_generic_notify(struct ccw_device *, int); |
687 | int dasd_generic_last_path_gone(struct dasd_device *); | 686 | int dasd_generic_last_path_gone(struct dasd_device *); |
688 | int dasd_generic_path_operational(struct dasd_device *); | 687 | int dasd_generic_path_operational(struct dasd_device *); |
688 | void dasd_generic_shutdown(struct ccw_device *); | ||
689 | 689 | ||
690 | void dasd_generic_handle_state_change(struct dasd_device *); | 690 | void dasd_generic_handle_state_change(struct dasd_device *); |
691 | int dasd_generic_pm_freeze(struct ccw_device *); | 691 | int dasd_generic_pm_freeze(struct ccw_device *); |
diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c index 792c69e78fe2..cceae70279f6 100644 --- a/drivers/s390/block/dasd_ioctl.c +++ b/drivers/s390/block/dasd_ioctl.c | |||
@@ -1,11 +1,10 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd_ioctl.c | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Horst Hummel <Horst.Hummel@de.ibm.com> | 3 | * Horst Hummel <Horst.Hummel@de.ibm.com> |
5 | * Carsten Otte <Cotte@de.ibm.com> | 4 | * Carsten Otte <Cotte@de.ibm.com> |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 5 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
7 | * Bugreports.to..: <Linux390@de.ibm.com> | 6 | * Bugreports.to..: <Linux390@de.ibm.com> |
8 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2001 | 7 | * Copyright IBM Corp. 1999, 2001 |
9 | * | 8 | * |
10 | * i/o controls for the dasd driver. | 9 | * i/o controls for the dasd driver. |
11 | */ | 10 | */ |
diff --git a/drivers/s390/block/dasd_proc.c b/drivers/s390/block/dasd_proc.c index e12989fff4ff..78ac905a5b7f 100644 --- a/drivers/s390/block/dasd_proc.c +++ b/drivers/s390/block/dasd_proc.c | |||
@@ -1,11 +1,10 @@ | |||
1 | /* | 1 | /* |
2 | * File...........: linux/drivers/s390/block/dasd_proc.c | ||
3 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> | 2 | * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> |
4 | * Horst Hummel <Horst.Hummel@de.ibm.com> | 3 | * Horst Hummel <Horst.Hummel@de.ibm.com> |
5 | * Carsten Otte <Cotte@de.ibm.com> | 4 | * Carsten Otte <Cotte@de.ibm.com> |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 5 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
7 | * Bugreports.to..: <Linux390@de.ibm.com> | 6 | * Bugreports.to..: <Linux390@de.ibm.com> |
8 | * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2002 | 7 | * Coypright IBM Corp. 1999, 2002 |
9 | * | 8 | * |
10 | * /proc interface for the dasd driver. | 9 | * /proc interface for the dasd driver. |
11 | * | 10 | * |
diff --git a/drivers/s390/char/ctrlchar.c b/drivers/s390/char/ctrlchar.c index 0e9a309b9669..8de2deb176d7 100644 --- a/drivers/s390/char/ctrlchar.c +++ b/drivers/s390/char/ctrlchar.c | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/ctrlchar.c | ||
3 | * Unified handling of special chars. | 2 | * Unified handling of special chars. |
4 | * | 3 | * |
5 | * Copyright (C) 2001 IBM Deutschland Entwicklung GmbH, IBM Corporation | 4 | * Copyright IBM Corp. 2001 |
6 | * Author(s): Fritz Elfert <felfert@millenux.com> <elfert@de.ibm.com> | 5 | * Author(s): Fritz Elfert <felfert@millenux.com> <elfert@de.ibm.com> |
7 | * | 6 | * |
8 | */ | 7 | */ |
diff --git a/drivers/s390/char/ctrlchar.h b/drivers/s390/char/ctrlchar.h index 935ffa0ea7c6..1a53552f4981 100644 --- a/drivers/s390/char/ctrlchar.h +++ b/drivers/s390/char/ctrlchar.h | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/ctrlchar.c | ||
3 | * Unified handling of special chars. | 2 | * Unified handling of special chars. |
4 | * | 3 | * |
5 | * Copyright (C) 2001 IBM Deutschland Entwicklung GmbH, IBM Corporation | 4 | * Copyright IBM Corp. 2001 |
6 | * Author(s): Fritz Elfert <felfert@millenux.com> <elfert@de.ibm.com> | 5 | * Author(s): Fritz Elfert <felfert@millenux.com> <elfert@de.ibm.com> |
7 | * | 6 | * |
8 | */ | 7 | */ |
diff --git a/drivers/s390/char/keyboard.c b/drivers/s390/char/keyboard.c index 7ef9cfdc17d8..01463b052ae7 100644 --- a/drivers/s390/char/keyboard.c +++ b/drivers/s390/char/keyboard.c | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/keyboard.c | ||
3 | * ebcdic keycode functions for s390 console drivers | 2 | * ebcdic keycode functions for s390 console drivers |
4 | * | 3 | * |
5 | * S390 version | 4 | * S390 version |
6 | * Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation | 5 | * Copyright IBM Corp. 2003 |
7 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
8 | */ | 7 | */ |
9 | 8 | ||
diff --git a/drivers/s390/char/keyboard.h b/drivers/s390/char/keyboard.h index f682f4e49680..d0ae2be58191 100644 --- a/drivers/s390/char/keyboard.h +++ b/drivers/s390/char/keyboard.h | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/keyboard.h | ||
3 | * ebcdic keycode functions for s390 console drivers | 2 | * ebcdic keycode functions for s390 console drivers |
4 | * | 3 | * |
5 | * Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation | 4 | * Copyright IBM Corp. 2003 |
6 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), | 5 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), |
7 | */ | 6 | */ |
8 | 7 | ||
diff --git a/drivers/s390/char/sclp_config.c b/drivers/s390/char/sclp_config.c index 3c03c1060be6..444d36183a25 100644 --- a/drivers/s390/char/sclp_config.c +++ b/drivers/s390/char/sclp_config.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/sclp_config.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | 3 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> |
6 | */ | 4 | */ |
diff --git a/drivers/s390/char/sclp_cpi.c b/drivers/s390/char/sclp_cpi.c index 5716487b8c9d..d70d8c20229c 100644 --- a/drivers/s390/char/sclp_cpi.c +++ b/drivers/s390/char/sclp_cpi.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/sclp_cpi.c | ||
3 | * SCLP control programm identification | 2 | * SCLP control programm identification |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 2001, 2007 | 4 | * Copyright IBM Corp. 2001, 2007 |
diff --git a/drivers/s390/char/sclp_cpi_sys.c b/drivers/s390/char/sclp_cpi_sys.c index bd1b9c919051..2acea809e2ac 100644 --- a/drivers/s390/char/sclp_cpi_sys.c +++ b/drivers/s390/char/sclp_cpi_sys.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/sclp_cpi_sys.c | ||
3 | * SCLP control program identification sysfs interface | 2 | * SCLP control program identification sysfs interface |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 2001, 2007 | 4 | * Copyright IBM Corp. 2001, 2007 |
diff --git a/drivers/s390/char/sclp_cpi_sys.h b/drivers/s390/char/sclp_cpi_sys.h index deef3e6ff496..65bb6a99c97f 100644 --- a/drivers/s390/char/sclp_cpi_sys.h +++ b/drivers/s390/char/sclp_cpi_sys.h | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/sclp_cpi_sys.h | ||
3 | * SCLP control program identification sysfs interface | 2 | * SCLP control program identification sysfs interface |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 2007 | 4 | * Copyright IBM Corp. 2007 |
diff --git a/drivers/s390/char/sclp_ocf.c b/drivers/s390/char/sclp_ocf.c index ab294d5a534e..2553db0fdb52 100644 --- a/drivers/s390/char/sclp_ocf.c +++ b/drivers/s390/char/sclp_ocf.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/sclp_ocf.c | ||
3 | * SCLP OCF communication parameters sysfs interface | 2 | * SCLP OCF communication parameters sysfs interface |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 2011 | 4 | * Copyright IBM Corp. 2011 |
diff --git a/drivers/s390/char/sclp_quiesce.c b/drivers/s390/char/sclp_quiesce.c index 69df137310bc..475e470d9768 100644 --- a/drivers/s390/char/sclp_quiesce.c +++ b/drivers/s390/char/sclp_quiesce.c | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/sclp_quiesce.c | ||
3 | * signal quiesce handler | 2 | * signal quiesce handler |
4 | * | 3 | * |
5 | * (C) Copyright IBM Corp. 1999,2004 | 4 | * Copyright IBM Corp. 1999, 2004 |
6 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> | 5 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> |
7 | * Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 6 | * Peter Oberparleiter <peter.oberparleiter@de.ibm.com> |
8 | */ | 7 | */ |
diff --git a/drivers/s390/char/sclp_sdias.c b/drivers/s390/char/sclp_sdias.c index 50f7115990ff..6a6f76bf6e3d 100644 --- a/drivers/s390/char/sclp_sdias.c +++ b/drivers/s390/char/sclp_sdias.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Sclp "store data in absolut storage" | 2 | * Sclp "store data in absolut storage" |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2003,2007 | 4 | * Copyright IBM Corp. 2003, 2007 |
5 | * Author(s): Michael Holzheu | 5 | * Author(s): Michael Holzheu |
6 | */ | 6 | */ |
7 | 7 | ||
diff --git a/drivers/s390/char/sclp_tty.c b/drivers/s390/char/sclp_tty.c index e66a75b3822c..0792c85baafe 100644 --- a/drivers/s390/char/sclp_tty.c +++ b/drivers/s390/char/sclp_tty.c | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/sclp_tty.c | ||
3 | * SCLP line mode terminal driver. | 2 | * SCLP line mode terminal driver. |
4 | * | 3 | * |
5 | * S390 version | 4 | * S390 version |
6 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 5 | * Copyright IBM Corp. 1999 |
7 | * Author(s): Martin Peschke <mpeschke@de.ibm.com> | 6 | * Author(s): Martin Peschke <mpeschke@de.ibm.com> |
8 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
9 | */ | 8 | */ |
diff --git a/drivers/s390/char/sclp_tty.h b/drivers/s390/char/sclp_tty.h index 4b965b22fecd..c8773421c31f 100644 --- a/drivers/s390/char/sclp_tty.h +++ b/drivers/s390/char/sclp_tty.h | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/sclp_tty.h | ||
3 | * interface to the SCLP-read/write driver | 2 | * interface to the SCLP-read/write driver |
4 | * | 3 | * |
5 | * S390 version | 4 | * S390 version |
6 | * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation | 5 | * Copyright IBM Corp. 1999 |
7 | * Author(s): Martin Peschke <mpeschke@de.ibm.com> | 6 | * Author(s): Martin Peschke <mpeschke@de.ibm.com> |
8 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
9 | */ | 8 | */ |
diff --git a/drivers/s390/char/tape.h b/drivers/s390/char/tape.h index bc6c7cfd36b6..c06be6cc2fc3 100644 --- a/drivers/s390/char/tape.h +++ b/drivers/s390/char/tape.h | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/tape.h | ||
3 | * tape device driver for 3480/3490E/3590 tapes. | 2 | * tape device driver for 3480/3490E/3590 tapes. |
4 | * | 3 | * |
5 | * S390 and zSeries version | 4 | * S390 and zSeries version |
diff --git a/drivers/s390/char/tape_34xx.c b/drivers/s390/char/tape_34xx.c index b28de80b7ca4..6ae929c024ae 100644 --- a/drivers/s390/char/tape_34xx.c +++ b/drivers/s390/char/tape_34xx.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/tape_34xx.c | ||
3 | * tape device discipline for 3480/3490 tapes. | 2 | * tape device discipline for 3480/3490 tapes. |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 2001, 2009 | 4 | * Copyright IBM Corp. 2001, 2009 |
diff --git a/drivers/s390/char/tape_3590.c b/drivers/s390/char/tape_3590.c index a5c6614b0db2..1b0eb49f739c 100644 --- a/drivers/s390/char/tape_3590.c +++ b/drivers/s390/char/tape_3590.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/tape_3590.c | ||
3 | * tape device discipline for 3590 tapes. | 2 | * tape device discipline for 3590 tapes. |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 2001, 2009 | 4 | * Copyright IBM Corp. 2001, 2009 |
diff --git a/drivers/s390/char/tape_3590.h b/drivers/s390/char/tape_3590.h index 4534055f1376..36b759e89d22 100644 --- a/drivers/s390/char/tape_3590.h +++ b/drivers/s390/char/tape_3590.h | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/tape_3590.h | ||
3 | * tape device discipline for 3590 tapes. | 2 | * tape device discipline for 3590 tapes. |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 2001,2006 | 4 | * Copyright IBM Corp. 2001, 2006 |
6 | * Author(s): Stefan Bader <shbader@de.ibm.com> | 5 | * Author(s): Stefan Bader <shbader@de.ibm.com> |
7 | * Michael Holzheu <holzheu@de.ibm.com> | 6 | * Michael Holzheu <holzheu@de.ibm.com> |
8 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
diff --git a/drivers/s390/char/tape_char.c b/drivers/s390/char/tape_char.c index 46886a7578c6..2d61db3fc62a 100644 --- a/drivers/s390/char/tape_char.c +++ b/drivers/s390/char/tape_char.c | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/tape_char.c | ||
3 | * character device frontend for tape device driver | 2 | * character device frontend for tape device driver |
4 | * | 3 | * |
5 | * S390 and zSeries version | 4 | * S390 and zSeries version |
6 | * Copyright IBM Corp. 2001,2006 | 5 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Carsten Otte <cotte@de.ibm.com> | 6 | * Author(s): Carsten Otte <cotte@de.ibm.com> |
8 | * Michael Holzheu <holzheu@de.ibm.com> | 7 | * Michael Holzheu <holzheu@de.ibm.com> |
9 | * Tuan Ngo-Anh <ngoanh@de.ibm.com> | 8 | * Tuan Ngo-Anh <ngoanh@de.ibm.com> |
diff --git a/drivers/s390/char/tape_class.c b/drivers/s390/char/tape_class.c index 55343df61edd..54b3c79203f5 100644 --- a/drivers/s390/char/tape_class.c +++ b/drivers/s390/char/tape_class.c | |||
@@ -1,6 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * (C) Copyright IBM Corp. 2004 | 2 | * Copyright IBM Corp. 2004 |
3 | * tape_class.c | ||
4 | * | 3 | * |
5 | * Tape class device support | 4 | * Tape class device support |
6 | * | 5 | * |
@@ -17,7 +16,7 @@ | |||
17 | 16 | ||
18 | MODULE_AUTHOR("Stefan Bader <shbader@de.ibm.com>"); | 17 | MODULE_AUTHOR("Stefan Bader <shbader@de.ibm.com>"); |
19 | MODULE_DESCRIPTION( | 18 | MODULE_DESCRIPTION( |
20 | "(C) Copyright IBM Corp. 2004 All Rights Reserved.\n" | 19 | "Copyright IBM Corp. 2004 All Rights Reserved.\n" |
21 | "tape_class.c" | 20 | "tape_class.c" |
22 | ); | 21 | ); |
23 | MODULE_LICENSE("GPL"); | 22 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/s390/char/tape_class.h b/drivers/s390/char/tape_class.h index ba2092f741d5..a332c10d50ad 100644 --- a/drivers/s390/char/tape_class.h +++ b/drivers/s390/char/tape_class.h | |||
@@ -1,6 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * (C) Copyright IBM Corp. 2004 All Rights Reserved. | 2 | * Copyright IBM Corp. 2004 All Rights Reserved. |
3 | * tape_class.h | ||
4 | * | 3 | * |
5 | * Tape class device support | 4 | * Tape class device support |
6 | * | 5 | * |
diff --git a/drivers/s390/char/tape_core.c b/drivers/s390/char/tape_core.c index 585618663ba4..f3b5123faf08 100644 --- a/drivers/s390/char/tape_core.c +++ b/drivers/s390/char/tape_core.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/tape_core.c | ||
3 | * basic function of the tape device driver | 2 | * basic function of the tape device driver |
4 | * | 3 | * |
5 | * S390 and zSeries version | 4 | * S390 and zSeries version |
diff --git a/drivers/s390/char/tape_proc.c b/drivers/s390/char/tape_proc.c index 0ceb37984f77..8733b232a116 100644 --- a/drivers/s390/char/tape_proc.c +++ b/drivers/s390/char/tape_proc.c | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/tape.c | ||
3 | * tape device driver for S/390 and zSeries tapes. | 2 | * tape device driver for S/390 and zSeries tapes. |
4 | * | 3 | * |
5 | * S390 and zSeries version | 4 | * S390 and zSeries version |
6 | * Copyright (C) 2001 IBM Corporation | 5 | * Copyright IBM Corp. 2001 |
7 | * Author(s): Carsten Otte <cotte@de.ibm.com> | 6 | * Author(s): Carsten Otte <cotte@de.ibm.com> |
8 | * Michael Holzheu <holzheu@de.ibm.com> | 7 | * Michael Holzheu <holzheu@de.ibm.com> |
9 | * Tuan Ngo-Anh <ngoanh@de.ibm.com> | 8 | * Tuan Ngo-Anh <ngoanh@de.ibm.com> |
diff --git a/drivers/s390/char/tape_std.c b/drivers/s390/char/tape_std.c index e7650170274a..981a99fd8d42 100644 --- a/drivers/s390/char/tape_std.c +++ b/drivers/s390/char/tape_std.c | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/tape_std.c | ||
3 | * standard tape device functions for ibm tapes. | 2 | * standard tape device functions for ibm tapes. |
4 | * | 3 | * |
5 | * S390 and zSeries version | 4 | * S390 and zSeries version |
6 | * Copyright (C) 2001,2002 IBM Deutschland Entwicklung GmbH, IBM Corporation | 5 | * Copyright IBM Corp. 2001, 2002 |
7 | * Author(s): Carsten Otte <cotte@de.ibm.com> | 6 | * Author(s): Carsten Otte <cotte@de.ibm.com> |
8 | * Michael Holzheu <holzheu@de.ibm.com> | 7 | * Michael Holzheu <holzheu@de.ibm.com> |
9 | * Tuan Ngo-Anh <ngoanh@de.ibm.com> | 8 | * Tuan Ngo-Anh <ngoanh@de.ibm.com> |
diff --git a/drivers/s390/char/tape_std.h b/drivers/s390/char/tape_std.h index 1fc952359341..c5816ad9ed7d 100644 --- a/drivers/s390/char/tape_std.h +++ b/drivers/s390/char/tape_std.h | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/tape_std.h | ||
3 | * standard tape device functions for ibm tapes. | 2 | * standard tape device functions for ibm tapes. |
4 | * | 3 | * |
5 | * Copyright (C) IBM Corp. 2001,2006 | 4 | * Copyright IBM Corp. 2001, 2006 |
6 | * Author(s): Carsten Otte <cotte@de.ibm.com> | 5 | * Author(s): Carsten Otte <cotte@de.ibm.com> |
7 | * Tuan Ngo-Anh <ngoanh@de.ibm.com> | 6 | * Tuan Ngo-Anh <ngoanh@de.ibm.com> |
8 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
diff --git a/drivers/s390/char/tty3270.c b/drivers/s390/char/tty3270.c index 10ec690197cb..1928f3458d10 100644 --- a/drivers/s390/char/tty3270.c +++ b/drivers/s390/char/tty3270.c | |||
@@ -1,11 +1,10 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/tty3270.c | ||
3 | * IBM/3270 Driver - tty functions. | 2 | * IBM/3270 Driver - tty functions. |
4 | * | 3 | * |
5 | * Author(s): | 4 | * Author(s): |
6 | * Original 3270 Code for 2.4 written by Richard Hitt (UTS Global) | 5 | * Original 3270 Code for 2.4 written by Richard Hitt (UTS Global) |
7 | * Rewritten for 2.5 by Martin Schwidefsky <schwidefsky@de.ibm.com> | 6 | * Rewritten for 2.5 by Martin Schwidefsky <schwidefsky@de.ibm.com> |
8 | * -- Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation | 7 | * -- Copyright IBM Corp. 2003 |
9 | */ | 8 | */ |
10 | 9 | ||
11 | #include <linux/module.h> | 10 | #include <linux/module.h> |
diff --git a/drivers/s390/char/tty3270.h b/drivers/s390/char/tty3270.h index 799da57f0390..11141a8f8974 100644 --- a/drivers/s390/char/tty3270.h +++ b/drivers/s390/char/tty3270.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/tty3270.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * | 3 | * |
6 | */ | 4 | */ |
diff --git a/drivers/s390/char/vmcp.c b/drivers/s390/char/vmcp.c index 89c03e6b1c0c..0fdedadff7bc 100644 --- a/drivers/s390/char/vmcp.c +++ b/drivers/s390/char/vmcp.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright IBM Corp. 2004,2010 | 2 | * Copyright IBM Corp. 2004, 2010 |
3 | * Interface implementation for communication with the z/VM control program | 3 | * Interface implementation for communication with the z/VM control program |
4 | * | 4 | * |
5 | * Author(s): Christian Borntraeger <borntraeger@de.ibm.com> | 5 | * Author(s): Christian Borntraeger <borntraeger@de.ibm.com> |
diff --git a/drivers/s390/char/vmcp.h b/drivers/s390/char/vmcp.h index 6a993948e188..1e29b0418382 100644 --- a/drivers/s390/char/vmcp.h +++ b/drivers/s390/char/vmcp.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2004, 2005 IBM Corporation | 2 | * Copyright IBM Corp. 2004, 2005 |
3 | * Interface implementation for communication with the z/VM control program | 3 | * Interface implementation for communication with the z/VM control program |
4 | * Version 1.0 | 4 | * Version 1.0 |
5 | * Author(s): Christian Borntraeger <cborntra@de.ibm.com> | 5 | * Author(s): Christian Borntraeger <cborntra@de.ibm.com> |
diff --git a/drivers/s390/char/vmlogrdr.c b/drivers/s390/char/vmlogrdr.c index 524d988d89dd..c131bc40f962 100644 --- a/drivers/s390/char/vmlogrdr.c +++ b/drivers/s390/char/vmlogrdr.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/char/vmlogrdr.c | ||
3 | * character device driver for reading z/VM system service records | 2 | * character device driver for reading z/VM system service records |
4 | * | 3 | * |
5 | * | 4 | * |
@@ -656,10 +655,19 @@ static ssize_t vmlogrdr_recording_status_show(struct device_driver *driver, | |||
656 | len = strlen(buf); | 655 | len = strlen(buf); |
657 | return len; | 656 | return len; |
658 | } | 657 | } |
659 | |||
660 | |||
661 | static DRIVER_ATTR(recording_status, 0444, vmlogrdr_recording_status_show, | 658 | static DRIVER_ATTR(recording_status, 0444, vmlogrdr_recording_status_show, |
662 | NULL); | 659 | NULL); |
660 | static struct attribute *vmlogrdr_drv_attrs[] = { | ||
661 | &driver_attr_recording_status.attr, | ||
662 | NULL, | ||
663 | }; | ||
664 | static struct attribute_group vmlogrdr_drv_attr_group = { | ||
665 | .attrs = vmlogrdr_drv_attrs, | ||
666 | }; | ||
667 | static const struct attribute_group *vmlogrdr_drv_attr_groups[] = { | ||
668 | &vmlogrdr_drv_attr_group, | ||
669 | NULL, | ||
670 | }; | ||
663 | 671 | ||
664 | static struct attribute *vmlogrdr_attrs[] = { | 672 | static struct attribute *vmlogrdr_attrs[] = { |
665 | &dev_attr_autopurge.attr, | 673 | &dev_attr_autopurge.attr, |
@@ -668,6 +676,13 @@ static struct attribute *vmlogrdr_attrs[] = { | |||
668 | &dev_attr_recording.attr, | 676 | &dev_attr_recording.attr, |
669 | NULL, | 677 | NULL, |
670 | }; | 678 | }; |
679 | static struct attribute_group vmlogrdr_attr_group = { | ||
680 | .attrs = vmlogrdr_attrs, | ||
681 | }; | ||
682 | static const struct attribute_group *vmlogrdr_attr_groups[] = { | ||
683 | &vmlogrdr_attr_group, | ||
684 | NULL, | ||
685 | }; | ||
671 | 686 | ||
672 | static int vmlogrdr_pm_prepare(struct device *dev) | 687 | static int vmlogrdr_pm_prepare(struct device *dev) |
673 | { | 688 | { |
@@ -692,18 +707,14 @@ static const struct dev_pm_ops vmlogrdr_pm_ops = { | |||
692 | .prepare = vmlogrdr_pm_prepare, | 707 | .prepare = vmlogrdr_pm_prepare, |
693 | }; | 708 | }; |
694 | 709 | ||
695 | static struct attribute_group vmlogrdr_attr_group = { | ||
696 | .attrs = vmlogrdr_attrs, | ||
697 | }; | ||
698 | |||
699 | static struct class *vmlogrdr_class; | 710 | static struct class *vmlogrdr_class; |
700 | static struct device_driver vmlogrdr_driver = { | 711 | static struct device_driver vmlogrdr_driver = { |
701 | .name = "vmlogrdr", | 712 | .name = "vmlogrdr", |
702 | .bus = &iucv_bus, | 713 | .bus = &iucv_bus, |
703 | .pm = &vmlogrdr_pm_ops, | 714 | .pm = &vmlogrdr_pm_ops, |
715 | .groups = vmlogrdr_drv_attr_groups, | ||
704 | }; | 716 | }; |
705 | 717 | ||
706 | |||
707 | static int vmlogrdr_register_driver(void) | 718 | static int vmlogrdr_register_driver(void) |
708 | { | 719 | { |
709 | int ret; | 720 | int ret; |
@@ -717,21 +728,14 @@ static int vmlogrdr_register_driver(void) | |||
717 | if (ret) | 728 | if (ret) |
718 | goto out_iucv; | 729 | goto out_iucv; |
719 | 730 | ||
720 | ret = driver_create_file(&vmlogrdr_driver, | ||
721 | &driver_attr_recording_status); | ||
722 | if (ret) | ||
723 | goto out_driver; | ||
724 | |||
725 | vmlogrdr_class = class_create(THIS_MODULE, "vmlogrdr"); | 731 | vmlogrdr_class = class_create(THIS_MODULE, "vmlogrdr"); |
726 | if (IS_ERR(vmlogrdr_class)) { | 732 | if (IS_ERR(vmlogrdr_class)) { |
727 | ret = PTR_ERR(vmlogrdr_class); | 733 | ret = PTR_ERR(vmlogrdr_class); |
728 | vmlogrdr_class = NULL; | 734 | vmlogrdr_class = NULL; |
729 | goto out_attr; | 735 | goto out_driver; |
730 | } | 736 | } |
731 | return 0; | 737 | return 0; |
732 | 738 | ||
733 | out_attr: | ||
734 | driver_remove_file(&vmlogrdr_driver, &driver_attr_recording_status); | ||
735 | out_driver: | 739 | out_driver: |
736 | driver_unregister(&vmlogrdr_driver); | 740 | driver_unregister(&vmlogrdr_driver); |
737 | out_iucv: | 741 | out_iucv: |
@@ -745,7 +749,6 @@ static void vmlogrdr_unregister_driver(void) | |||
745 | { | 749 | { |
746 | class_destroy(vmlogrdr_class); | 750 | class_destroy(vmlogrdr_class); |
747 | vmlogrdr_class = NULL; | 751 | vmlogrdr_class = NULL; |
748 | driver_remove_file(&vmlogrdr_driver, &driver_attr_recording_status); | ||
749 | driver_unregister(&vmlogrdr_driver); | 752 | driver_unregister(&vmlogrdr_driver); |
750 | iucv_unregister(&vmlogrdr_iucv_handler, 1); | 753 | iucv_unregister(&vmlogrdr_iucv_handler, 1); |
751 | } | 754 | } |
@@ -762,6 +765,7 @@ static int vmlogrdr_register_device(struct vmlogrdr_priv_t *priv) | |||
762 | dev->bus = &iucv_bus; | 765 | dev->bus = &iucv_bus; |
763 | dev->parent = iucv_root; | 766 | dev->parent = iucv_root; |
764 | dev->driver = &vmlogrdr_driver; | 767 | dev->driver = &vmlogrdr_driver; |
768 | dev->groups = vmlogrdr_attr_groups; | ||
765 | dev_set_drvdata(dev, priv); | 769 | dev_set_drvdata(dev, priv); |
766 | /* | 770 | /* |
767 | * The release function could be called after the | 771 | * The release function could be called after the |
@@ -779,11 +783,6 @@ static int vmlogrdr_register_device(struct vmlogrdr_priv_t *priv) | |||
779 | return ret; | 783 | return ret; |
780 | } | 784 | } |
781 | 785 | ||
782 | ret = sysfs_create_group(&dev->kobj, &vmlogrdr_attr_group); | ||
783 | if (ret) { | ||
784 | device_unregister(dev); | ||
785 | return ret; | ||
786 | } | ||
787 | priv->class_device = device_create(vmlogrdr_class, dev, | 786 | priv->class_device = device_create(vmlogrdr_class, dev, |
788 | MKDEV(vmlogrdr_major, | 787 | MKDEV(vmlogrdr_major, |
789 | priv->minor_num), | 788 | priv->minor_num), |
@@ -791,7 +790,6 @@ static int vmlogrdr_register_device(struct vmlogrdr_priv_t *priv) | |||
791 | if (IS_ERR(priv->class_device)) { | 790 | if (IS_ERR(priv->class_device)) { |
792 | ret = PTR_ERR(priv->class_device); | 791 | ret = PTR_ERR(priv->class_device); |
793 | priv->class_device=NULL; | 792 | priv->class_device=NULL; |
794 | sysfs_remove_group(&dev->kobj, &vmlogrdr_attr_group); | ||
795 | device_unregister(dev); | 793 | device_unregister(dev); |
796 | return ret; | 794 | return ret; |
797 | } | 795 | } |
@@ -804,7 +802,6 @@ static int vmlogrdr_unregister_device(struct vmlogrdr_priv_t *priv) | |||
804 | { | 802 | { |
805 | device_destroy(vmlogrdr_class, MKDEV(vmlogrdr_major, priv->minor_num)); | 803 | device_destroy(vmlogrdr_class, MKDEV(vmlogrdr_major, priv->minor_num)); |
806 | if (priv->device != NULL) { | 804 | if (priv->device != NULL) { |
807 | sysfs_remove_group(&priv->device->kobj, &vmlogrdr_attr_group); | ||
808 | device_unregister(priv->device); | 805 | device_unregister(priv->device); |
809 | priv->device=NULL; | 806 | priv->device=NULL; |
810 | } | 807 | } |
diff --git a/drivers/s390/char/vmwatchdog.c b/drivers/s390/char/vmwatchdog.c index 2211277a1079..e9b72311e254 100644 --- a/drivers/s390/char/vmwatchdog.c +++ b/drivers/s390/char/vmwatchdog.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Watchdog implementation based on z/VM Watchdog Timer API | 2 | * Watchdog implementation based on z/VM Watchdog Timer API |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2004,2009 | 4 | * Copyright IBM Corp. 2004, 2009 |
5 | * | 5 | * |
6 | * The user space watchdog daemon can use this driver as | 6 | * The user space watchdog daemon can use this driver as |
7 | * /dev/vmwatchdog to have z/VM execute the specified CP | 7 | * /dev/vmwatchdog to have z/VM execute the specified CP |
diff --git a/drivers/s390/char/zcore.c b/drivers/s390/char/zcore.c index 3303d66b2794..e3b9308b0fe3 100644 --- a/drivers/s390/char/zcore.c +++ b/drivers/s390/char/zcore.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * For more information please refer to Documentation/s390/zfcpdump.txt | 6 | * For more information please refer to Documentation/s390/zfcpdump.txt |
7 | * | 7 | * |
8 | * Copyright IBM Corp. 2003,2008 | 8 | * Copyright IBM Corp. 2003, 2008 |
9 | * Author(s): Michael Holzheu | 9 | * Author(s): Michael Holzheu |
10 | */ | 10 | */ |
11 | 11 | ||
diff --git a/drivers/s390/cio/airq.c b/drivers/s390/cio/airq.c index 65d2e769dfa1..bc10220f6847 100644 --- a/drivers/s390/cio/airq.c +++ b/drivers/s390/cio/airq.c | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/airq.c | ||
3 | * Support for adapter interruptions | 2 | * Support for adapter interruptions |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 1999,2007 | 4 | * Copyright IBM Corp. 1999, 2007 |
6 | * Author(s): Ingo Adlung <adlung@de.ibm.com> | 5 | * Author(s): Ingo Adlung <adlung@de.ibm.com> |
7 | * Cornelia Huck <cornelia.huck@de.ibm.com> | 6 | * Cornelia Huck <cornelia.huck@de.ibm.com> |
8 | * Arnd Bergmann <arndb@de.ibm.com> | 7 | * Arnd Bergmann <arndb@de.ibm.com> |
diff --git a/drivers/s390/cio/blacklist.c b/drivers/s390/cio/blacklist.c index 08c66035dd19..2d2a966a3b39 100644 --- a/drivers/s390/cio/blacklist.c +++ b/drivers/s390/cio/blacklist.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/blacklist.c | ||
3 | * S/390 common I/O routines -- blacklisting of specific devices | 2 | * S/390 common I/O routines -- blacklisting of specific devices |
4 | * | 3 | * |
5 | * Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH, | 4 | * Copyright IBM Corp. 1999, 2002 |
6 | * IBM Corporation | ||
7 | * Author(s): Ingo Adlung (adlung@de.ibm.com) | 5 | * Author(s): Ingo Adlung (adlung@de.ibm.com) |
8 | * Cornelia Huck (cornelia.huck@de.ibm.com) | 6 | * Cornelia Huck (cornelia.huck@de.ibm.com) |
9 | * Arnd Bergmann (arndb@de.ibm.com) | 7 | * Arnd Bergmann (arndb@de.ibm.com) |
diff --git a/drivers/s390/cio/chp.c b/drivers/s390/cio/chp.c index e792436c9270..50ad5fdd815d 100644 --- a/drivers/s390/cio/chp.c +++ b/drivers/s390/cio/chp.c | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/chp.c | 2 | * Copyright IBM Corp. 1999, 2010 |
3 | * | ||
4 | * Copyright IBM Corp. 1999,2010 | ||
5 | * Author(s): Cornelia Huck (cornelia.huck@de.ibm.com) | 3 | * Author(s): Cornelia Huck (cornelia.huck@de.ibm.com) |
6 | * Arnd Bergmann (arndb@de.ibm.com) | 4 | * Arnd Bergmann (arndb@de.ibm.com) |
7 | * Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 5 | * Peter Oberparleiter <peter.oberparleiter@de.ibm.com> |
@@ -362,10 +360,13 @@ static struct attribute *chp_attrs[] = { | |||
362 | &dev_attr_shared.attr, | 360 | &dev_attr_shared.attr, |
363 | NULL, | 361 | NULL, |
364 | }; | 362 | }; |
365 | |||
366 | static struct attribute_group chp_attr_group = { | 363 | static struct attribute_group chp_attr_group = { |
367 | .attrs = chp_attrs, | 364 | .attrs = chp_attrs, |
368 | }; | 365 | }; |
366 | static const struct attribute_group *chp_attr_groups[] = { | ||
367 | &chp_attr_group, | ||
368 | NULL, | ||
369 | }; | ||
369 | 370 | ||
370 | static void chp_release(struct device *dev) | 371 | static void chp_release(struct device *dev) |
371 | { | 372 | { |
@@ -397,6 +398,7 @@ int chp_new(struct chp_id chpid) | |||
397 | chp->chpid = chpid; | 398 | chp->chpid = chpid; |
398 | chp->state = 1; | 399 | chp->state = 1; |
399 | chp->dev.parent = &channel_subsystems[chpid.cssid]->device; | 400 | chp->dev.parent = &channel_subsystems[chpid.cssid]->device; |
401 | chp->dev.groups = chp_attr_groups; | ||
400 | chp->dev.release = chp_release; | 402 | chp->dev.release = chp_release; |
401 | mutex_init(&chp->lock); | 403 | mutex_init(&chp->lock); |
402 | 404 | ||
@@ -426,16 +428,10 @@ int chp_new(struct chp_id chpid) | |||
426 | put_device(&chp->dev); | 428 | put_device(&chp->dev); |
427 | goto out; | 429 | goto out; |
428 | } | 430 | } |
429 | ret = sysfs_create_group(&chp->dev.kobj, &chp_attr_group); | ||
430 | if (ret) { | ||
431 | device_unregister(&chp->dev); | ||
432 | goto out; | ||
433 | } | ||
434 | mutex_lock(&channel_subsystems[chpid.cssid]->mutex); | 431 | mutex_lock(&channel_subsystems[chpid.cssid]->mutex); |
435 | if (channel_subsystems[chpid.cssid]->cm_enabled) { | 432 | if (channel_subsystems[chpid.cssid]->cm_enabled) { |
436 | ret = chp_add_cmg_attr(chp); | 433 | ret = chp_add_cmg_attr(chp); |
437 | if (ret) { | 434 | if (ret) { |
438 | sysfs_remove_group(&chp->dev.kobj, &chp_attr_group); | ||
439 | device_unregister(&chp->dev); | 435 | device_unregister(&chp->dev); |
440 | mutex_unlock(&channel_subsystems[chpid.cssid]->mutex); | 436 | mutex_unlock(&channel_subsystems[chpid.cssid]->mutex); |
441 | goto out; | 437 | goto out; |
diff --git a/drivers/s390/cio/chp.h b/drivers/s390/cio/chp.h index 12b4903d6fe3..e1399dbee834 100644 --- a/drivers/s390/cio/chp.h +++ b/drivers/s390/cio/chp.h | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/chp.h | 2 | * Copyright IBM Corp. 2007, 2010 |
3 | * | ||
4 | * Copyright IBM Corp. 2007,2010 | ||
5 | * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 3 | * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> |
6 | */ | 4 | */ |
7 | 5 | ||
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c index a84631a7391d..cfe0c087fe5c 100644 --- a/drivers/s390/cio/chsc.c +++ b/drivers/s390/cio/chsc.c | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/chsc.c | ||
3 | * S/390 common I/O routines -- channel subsystem call | 2 | * S/390 common I/O routines -- channel subsystem call |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 1999,2010 | 4 | * Copyright IBM Corp. 1999, 2010 |
6 | * Author(s): Ingo Adlung (adlung@de.ibm.com) | 5 | * Author(s): Ingo Adlung (adlung@de.ibm.com) |
7 | * Cornelia Huck (cornelia.huck@de.ibm.com) | 6 | * Cornelia Huck (cornelia.huck@de.ibm.com) |
8 | * Arnd Bergmann (arndb@de.ibm.com) | 7 | * Arnd Bergmann (arndb@de.ibm.com) |
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c index a6ddaed8793d..33d1ef703593 100644 --- a/drivers/s390/cio/cio.c +++ b/drivers/s390/cio/cio.c | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/cio.c | ||
3 | * S/390 common I/O routines -- low level i/o calls | 2 | * S/390 common I/O routines -- low level i/o calls |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 1999,2008 | 4 | * Copyright IBM Corp. 1999, 2008 |
6 | * Author(s): Ingo Adlung (adlung@de.ibm.com) | 5 | * Author(s): Ingo Adlung (adlung@de.ibm.com) |
7 | * Cornelia Huck (cornelia.huck@de.ibm.com) | 6 | * Cornelia Huck (cornelia.huck@de.ibm.com) |
8 | * Arnd Bergmann (arndb@de.ibm.com) | 7 | * Arnd Bergmann (arndb@de.ibm.com) |
diff --git a/drivers/s390/cio/cmf.c b/drivers/s390/cio/cmf.c index 204ca728e7fd..c9fc61c0a866 100644 --- a/drivers/s390/cio/cmf.c +++ b/drivers/s390/cio/cmf.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/cio/cmf.c | ||
3 | * | ||
4 | * Linux on zSeries Channel Measurement Facility support | 2 | * Linux on zSeries Channel Measurement Facility support |
5 | * | 3 | * |
6 | * Copyright 2000,2006 IBM Corporation | 4 | * Copyright IBM Corp. 2000, 2006 |
7 | * | 5 | * |
8 | * Authors: Arnd Bergmann <arndb@de.ibm.com> | 6 | * Authors: Arnd Bergmann <arndb@de.ibm.com> |
9 | * Cornelia Huck <cornelia.huck@de.ibm.com> | 7 | * Cornelia Huck <cornelia.huck@de.ibm.com> |
@@ -1341,7 +1339,7 @@ module_init(init_cmf); | |||
1341 | MODULE_AUTHOR("Arnd Bergmann <arndb@de.ibm.com>"); | 1339 | MODULE_AUTHOR("Arnd Bergmann <arndb@de.ibm.com>"); |
1342 | MODULE_LICENSE("GPL"); | 1340 | MODULE_LICENSE("GPL"); |
1343 | MODULE_DESCRIPTION("channel measurement facility base driver\n" | 1341 | MODULE_DESCRIPTION("channel measurement facility base driver\n" |
1344 | "Copyright 2003 IBM Corporation\n"); | 1342 | "Copyright IBM Corp. 2003\n"); |
1345 | 1343 | ||
1346 | EXPORT_SYMBOL_GPL(enable_cmf); | 1344 | EXPORT_SYMBOL_GPL(enable_cmf); |
1347 | EXPORT_SYMBOL_GPL(disable_cmf); | 1345 | EXPORT_SYMBOL_GPL(disable_cmf); |
diff --git a/drivers/s390/cio/crw.c b/drivers/s390/cio/crw.c index d0a2dff43fb4..0f8a25f98b10 100644 --- a/drivers/s390/cio/crw.c +++ b/drivers/s390/cio/crw.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Channel report handling code | 2 | * Channel report handling code |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2000,2009 | 4 | * Copyright IBM Corp. 2000, 2009 |
5 | * Author(s): Ingo Adlung <adlung@de.ibm.com>, | 5 | * Author(s): Ingo Adlung <adlung@de.ibm.com>, |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, | 6 | * Martin Schwidefsky <schwidefsky@de.ibm.com>, |
7 | * Cornelia Huck <cornelia.huck@de.ibm.com>, | 7 | * Cornelia Huck <cornelia.huck@de.ibm.com>, |
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index f8f952d52045..ed25c8740a9c 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/device.c | ||
3 | * bus driver for ccw devices | 2 | * bus driver for ccw devices |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 2002,2008 | 4 | * Copyright IBM Corp. 2002, 2008 |
6 | * Author(s): Arnd Bergmann (arndb@de.ibm.com) | 5 | * Author(s): Arnd Bergmann (arndb@de.ibm.com) |
7 | * Cornelia Huck (cornelia.huck@de.ibm.com) | 6 | * Cornelia Huck (cornelia.huck@de.ibm.com) |
8 | * Martin Schwidefsky (schwidefsky@de.ibm.com) | 7 | * Martin Schwidefsky (schwidefsky@de.ibm.com) |
diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c index 1b853513c891..1bb1d00095af 100644 --- a/drivers/s390/cio/device_fsm.c +++ b/drivers/s390/cio/device_fsm.c | |||
@@ -1,8 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/device_fsm.c | ||
3 | * finite state machine for device handling | 2 | * finite state machine for device handling |
4 | * | 3 | * |
5 | * Copyright IBM Corp. 2002,2008 | 4 | * Copyright IBM Corp. 2002, 2008 |
6 | * Author(s): Cornelia Huck (cornelia.huck@de.ibm.com) | 5 | * Author(s): Cornelia Huck (cornelia.huck@de.ibm.com) |
7 | * Martin Schwidefsky (schwidefsky@de.ibm.com) | 6 | * Martin Schwidefsky (schwidefsky@de.ibm.com) |
8 | */ | 7 | */ |
diff --git a/drivers/s390/cio/device_id.c b/drivers/s390/cio/device_id.c index 78a0b43862c5..d4fa30541a33 100644 --- a/drivers/s390/cio/device_id.c +++ b/drivers/s390/cio/device_id.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * CCW device SENSE ID I/O handling. | 2 | * CCW device SENSE ID I/O handling. |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2002,2009 | 4 | * Copyright IBM Corp. 2002, 2009 |
5 | * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> | 5 | * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 6 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
7 | * Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 7 | * Peter Oberparleiter <peter.oberparleiter@de.ibm.com> |
diff --git a/drivers/s390/cio/device_pgid.c b/drivers/s390/cio/device_pgid.c index 07a4fd29f096..368368fe04b2 100644 --- a/drivers/s390/cio/device_pgid.c +++ b/drivers/s390/cio/device_pgid.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * CCW device PGID and path verification I/O handling. | 2 | * CCW device PGID and path verification I/O handling. |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2002,2009 | 4 | * Copyright IBM Corp. 2002, 2009 |
5 | * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> | 5 | * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 6 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
7 | * Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 7 | * Peter Oberparleiter <peter.oberparleiter@de.ibm.com> |
diff --git a/drivers/s390/cio/device_status.c b/drivers/s390/cio/device_status.c index 66d8066ef22a..15b56a15db15 100644 --- a/drivers/s390/cio/device_status.c +++ b/drivers/s390/cio/device_status.c | |||
@@ -1,8 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/device_status.c | 2 | * Copyright IBM Corp. 2002 |
3 | * | ||
4 | * Copyright (C) 2002 IBM Deutschland Entwicklung GmbH, | ||
5 | * IBM Corporation | ||
6 | * Author(s): Cornelia Huck (cornelia.huck@de.ibm.com) | 3 | * Author(s): Cornelia Huck (cornelia.huck@de.ibm.com) |
7 | * Martin Schwidefsky (schwidefsky@de.ibm.com) | 4 | * Martin Schwidefsky (schwidefsky@de.ibm.com) |
8 | * | 5 | * |
diff --git a/drivers/s390/cio/idset.c b/drivers/s390/cio/idset.c index 4d10981c7cc1..e6d5f8c49524 100644 --- a/drivers/s390/cio/idset.c +++ b/drivers/s390/cio/idset.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/idset.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 3 | * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> |
6 | */ | 4 | */ |
diff --git a/drivers/s390/cio/idset.h b/drivers/s390/cio/idset.h index 7543da4529f9..3d943f03591e 100644 --- a/drivers/s390/cio/idset.h +++ b/drivers/s390/cio/idset.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/idset.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 3 | * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> |
6 | */ | 4 | */ |
diff --git a/drivers/s390/cio/qdio.h b/drivers/s390/cio/qdio.h index b962ffbc0803..5132554d7917 100644 --- a/drivers/s390/cio/qdio.h +++ b/drivers/s390/cio/qdio.h | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/cio/qdio.h | 2 | * Copyright IBM Corp. 2000, 2009 |
3 | * | ||
4 | * Copyright 2000,2009 IBM Corp. | ||
5 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com> | 3 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com> |
6 | * Jan Glauber <jang@linux.vnet.ibm.com> | 4 | * Jan Glauber <jang@linux.vnet.ibm.com> |
7 | */ | 5 | */ |
diff --git a/drivers/s390/cio/qdio_debug.c b/drivers/s390/cio/qdio_debug.c index 29021f4e96b6..e6e0d31c02ac 100644 --- a/drivers/s390/cio/qdio_debug.c +++ b/drivers/s390/cio/qdio_debug.c | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/qdio_debug.c | 2 | * Copyright IBM Corp. 2008, 2009 |
3 | * | ||
4 | * Copyright IBM Corp. 2008,2009 | ||
5 | * | 3 | * |
6 | * Author: Jan Glauber (jang@linux.vnet.ibm.com) | 4 | * Author: Jan Glauber (jang@linux.vnet.ibm.com) |
7 | */ | 5 | */ |
diff --git a/drivers/s390/cio/qdio_debug.h b/drivers/s390/cio/qdio_debug.h index 5d70bd162ae9..e1f646800ddb 100644 --- a/drivers/s390/cio/qdio_debug.h +++ b/drivers/s390/cio/qdio_debug.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/qdio_debug.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2008 | 2 | * Copyright IBM Corp. 2008 |
5 | * | 3 | * |
6 | * Author: Jan Glauber (jang@linux.vnet.ibm.com) | 4 | * Author: Jan Glauber (jang@linux.vnet.ibm.com) |
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 7493efafa0d5..e06fa03ea1e4 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/cio/qdio_main.c | ||
3 | * | ||
4 | * Linux for s390 qdio support, buffer handling, qdio API and module support. | 2 | * Linux for s390 qdio support, buffer handling, qdio API and module support. |
5 | * | 3 | * |
6 | * Copyright 2000,2008 IBM Corp. | 4 | * Copyright IBM Corp. 2000, 2008 |
7 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com> | 5 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com> |
8 | * Jan Glauber <jang@linux.vnet.ibm.com> | 6 | * Jan Glauber <jang@linux.vnet.ibm.com> |
9 | * 2.6 cio integration by Cornelia Huck <cornelia.huck@de.ibm.com> | 7 | * 2.6 cio integration by Cornelia Huck <cornelia.huck@de.ibm.com> |
diff --git a/drivers/s390/cio/qdio_setup.c b/drivers/s390/cio/qdio_setup.c index ecf12f0aca7b..6c973db14983 100644 --- a/drivers/s390/cio/qdio_setup.c +++ b/drivers/s390/cio/qdio_setup.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * driver/s390/cio/qdio_setup.c | ||
3 | * | ||
4 | * qdio queue initialization | 2 | * qdio queue initialization |
5 | * | 3 | * |
6 | * Copyright (C) IBM Corp. 2008 | 4 | * Copyright IBM Corp. 2008 |
7 | * Author(s): Jan Glauber <jang@linux.vnet.ibm.com> | 5 | * Author(s): Jan Glauber <jang@linux.vnet.ibm.com> |
8 | */ | 6 | */ |
9 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c index 011eadea3ee4..2e060088fa87 100644 --- a/drivers/s390/cio/qdio_thinint.c +++ b/drivers/s390/cio/qdio_thinint.c | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/cio/thinint_qdio.c | 2 | * Copyright IBM Corp. 2000, 2009 |
3 | * | ||
4 | * Copyright 2000,2009 IBM Corp. | ||
5 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com> | 3 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com> |
6 | * Cornelia Huck <cornelia.huck@de.ibm.com> | 4 | * Cornelia Huck <cornelia.huck@de.ibm.com> |
7 | * Jan Glauber <jang@linux.vnet.ibm.com> | 5 | * Jan Glauber <jang@linux.vnet.ibm.com> |
diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c index b987d4619586..ae258a4b4e5e 100644 --- a/drivers/s390/crypto/ap_bus.c +++ b/drivers/s390/crypto/ap_bus.c | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/ap_bus.c | 2 | * Copyright IBM Corp. 2006 |
3 | * | ||
4 | * Copyright (C) 2006 IBM Corporation | ||
5 | * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> | 3 | * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 4 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
7 | * Ralph Wuerthner <rwuerthn@de.ibm.com> | 5 | * Ralph Wuerthner <rwuerthn@de.ibm.com> |
@@ -70,7 +68,7 @@ static int ap_select_domain(void); | |||
70 | */ | 68 | */ |
71 | MODULE_AUTHOR("IBM Corporation"); | 69 | MODULE_AUTHOR("IBM Corporation"); |
72 | MODULE_DESCRIPTION("Adjunct Processor Bus driver, " | 70 | MODULE_DESCRIPTION("Adjunct Processor Bus driver, " |
73 | "Copyright 2006 IBM Corporation"); | 71 | "Copyright IBM Corp. 2006"); |
74 | MODULE_LICENSE("GPL"); | 72 | MODULE_LICENSE("GPL"); |
75 | 73 | ||
76 | /* | 74 | /* |
@@ -338,6 +336,12 @@ static int ap_queue_enable_interruption(ap_qid_t qid, void *ind) | |||
338 | break; | 336 | break; |
339 | case AP_RESPONSE_RESET_IN_PROGRESS: | 337 | case AP_RESPONSE_RESET_IN_PROGRESS: |
340 | case AP_RESPONSE_BUSY: | 338 | case AP_RESPONSE_BUSY: |
339 | if (i < AP_MAX_RESET - 1) { | ||
340 | udelay(5); | ||
341 | status = ap_queue_interruption_control(qid, | ||
342 | ind); | ||
343 | continue; | ||
344 | } | ||
341 | break; | 345 | break; |
342 | case AP_RESPONSE_Q_NOT_AVAIL: | 346 | case AP_RESPONSE_Q_NOT_AVAIL: |
343 | case AP_RESPONSE_DECONFIGURED: | 347 | case AP_RESPONSE_DECONFIGURED: |
diff --git a/drivers/s390/crypto/ap_bus.h b/drivers/s390/crypto/ap_bus.h index 726fc65809d8..52d61995af88 100644 --- a/drivers/s390/crypto/ap_bus.h +++ b/drivers/s390/crypto/ap_bus.h | |||
@@ -1,7 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/ap_bus.h | 2 | * Copyright IBM Corp. 2006 |
3 | * | ||
4 | * Copyright (C) 2006 IBM Corporation | ||
5 | * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> | 3 | * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> |
6 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 4 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
7 | * Ralph Wuerthner <rwuerthn@de.ibm.com> | 5 | * Ralph Wuerthner <rwuerthn@de.ibm.com> |
diff --git a/drivers/s390/crypto/zcrypt_api.c b/drivers/s390/crypto/zcrypt_api.c index 88523208d47d..2f94132246a1 100644 --- a/drivers/s390/crypto/zcrypt_api.c +++ b/drivers/s390/crypto/zcrypt_api.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/zcrypt_api.c | ||
3 | * | ||
4 | * zcrypt 2.1.0 | 2 | * zcrypt 2.1.0 |
5 | * | 3 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 4 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 5 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 6 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * Cornelia Huck <cornelia.huck@de.ibm.com> | 7 | * Cornelia Huck <cornelia.huck@de.ibm.com> |
@@ -47,7 +45,7 @@ | |||
47 | */ | 45 | */ |
48 | MODULE_AUTHOR("IBM Corporation"); | 46 | MODULE_AUTHOR("IBM Corporation"); |
49 | MODULE_DESCRIPTION("Cryptographic Coprocessor interface, " | 47 | MODULE_DESCRIPTION("Cryptographic Coprocessor interface, " |
50 | "Copyright 2001, 2006 IBM Corporation"); | 48 | "Copyright IBM Corp. 2001, 2006"); |
51 | MODULE_LICENSE("GPL"); | 49 | MODULE_LICENSE("GPL"); |
52 | 50 | ||
53 | static DEFINE_SPINLOCK(zcrypt_device_lock); | 51 | static DEFINE_SPINLOCK(zcrypt_device_lock); |
diff --git a/drivers/s390/crypto/zcrypt_api.h b/drivers/s390/crypto/zcrypt_api.h index 9688f3985b07..7a32c4bc8ef9 100644 --- a/drivers/s390/crypto/zcrypt_api.h +++ b/drivers/s390/crypto/zcrypt_api.h | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/zcrypt_api.h | ||
3 | * | ||
4 | * zcrypt 2.1.0 | 2 | * zcrypt 2.1.0 |
5 | * | 3 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 4 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 5 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 6 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * Cornelia Huck <cornelia.huck@de.ibm.com> | 7 | * Cornelia Huck <cornelia.huck@de.ibm.com> |
diff --git a/drivers/s390/crypto/zcrypt_cca_key.h b/drivers/s390/crypto/zcrypt_cca_key.h index ed82f2f59b17..1f42f103c761 100644 --- a/drivers/s390/crypto/zcrypt_cca_key.h +++ b/drivers/s390/crypto/zcrypt_cca_key.h | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/zcrypt_cca_key.h | ||
3 | * | ||
4 | * zcrypt 2.1.0 | 2 | * zcrypt 2.1.0 |
5 | * | 3 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 4 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 5 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 6 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * | 7 | * |
diff --git a/drivers/s390/crypto/zcrypt_cex2a.c b/drivers/s390/crypto/zcrypt_cex2a.c index 46812440425a..744c668f586c 100644 --- a/drivers/s390/crypto/zcrypt_cex2a.c +++ b/drivers/s390/crypto/zcrypt_cex2a.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/zcrypt_cex2a.c | ||
3 | * | ||
4 | * zcrypt 2.1.0 | 2 | * zcrypt 2.1.0 |
5 | * | 3 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 4 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 5 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 6 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * | 7 | * |
@@ -66,7 +64,7 @@ static struct ap_device_id zcrypt_cex2a_ids[] = { | |||
66 | MODULE_DEVICE_TABLE(ap, zcrypt_cex2a_ids); | 64 | MODULE_DEVICE_TABLE(ap, zcrypt_cex2a_ids); |
67 | MODULE_AUTHOR("IBM Corporation"); | 65 | MODULE_AUTHOR("IBM Corporation"); |
68 | MODULE_DESCRIPTION("CEX2A Cryptographic Coprocessor device driver, " | 66 | MODULE_DESCRIPTION("CEX2A Cryptographic Coprocessor device driver, " |
69 | "Copyright 2001, 2006 IBM Corporation"); | 67 | "Copyright IBM Corp. 2001, 2006"); |
70 | MODULE_LICENSE("GPL"); | 68 | MODULE_LICENSE("GPL"); |
71 | 69 | ||
72 | static int zcrypt_cex2a_probe(struct ap_device *ap_dev); | 70 | static int zcrypt_cex2a_probe(struct ap_device *ap_dev); |
diff --git a/drivers/s390/crypto/zcrypt_cex2a.h b/drivers/s390/crypto/zcrypt_cex2a.h index 0350665810cf..0dce4b9af184 100644 --- a/drivers/s390/crypto/zcrypt_cex2a.h +++ b/drivers/s390/crypto/zcrypt_cex2a.h | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/zcrypt_cex2a.h | ||
3 | * | ||
4 | * zcrypt 2.1.0 | 2 | * zcrypt 2.1.0 |
5 | * | 3 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 4 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 5 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 6 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * | 7 | * |
diff --git a/drivers/s390/crypto/zcrypt_error.h b/drivers/s390/crypto/zcrypt_error.h index 03ba27f05f92..0965e2626d18 100644 --- a/drivers/s390/crypto/zcrypt_error.h +++ b/drivers/s390/crypto/zcrypt_error.h | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/zcrypt_error.h | ||
3 | * | ||
4 | * zcrypt 2.1.0 | 2 | * zcrypt 2.1.0 |
5 | * | 3 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 4 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 5 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 6 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * | 7 | * |
diff --git a/drivers/s390/crypto/zcrypt_pcica.c b/drivers/s390/crypto/zcrypt_pcica.c index ad7951c21b79..f2b71d8df01f 100644 --- a/drivers/s390/crypto/zcrypt_pcica.c +++ b/drivers/s390/crypto/zcrypt_pcica.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/zcrypt_pcica.c | ||
3 | * | ||
4 | * zcrypt 2.1.0 | 2 | * zcrypt 2.1.0 |
5 | * | 3 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 4 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 5 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 6 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * | 7 | * |
@@ -56,7 +54,7 @@ static struct ap_device_id zcrypt_pcica_ids[] = { | |||
56 | MODULE_DEVICE_TABLE(ap, zcrypt_pcica_ids); | 54 | MODULE_DEVICE_TABLE(ap, zcrypt_pcica_ids); |
57 | MODULE_AUTHOR("IBM Corporation"); | 55 | MODULE_AUTHOR("IBM Corporation"); |
58 | MODULE_DESCRIPTION("PCICA Cryptographic Coprocessor device driver, " | 56 | MODULE_DESCRIPTION("PCICA Cryptographic Coprocessor device driver, " |
59 | "Copyright 2001, 2006 IBM Corporation"); | 57 | "Copyright IBM Corp. 2001, 2006"); |
60 | MODULE_LICENSE("GPL"); | 58 | MODULE_LICENSE("GPL"); |
61 | 59 | ||
62 | static int zcrypt_pcica_probe(struct ap_device *ap_dev); | 60 | static int zcrypt_pcica_probe(struct ap_device *ap_dev); |
diff --git a/drivers/s390/crypto/zcrypt_pcica.h b/drivers/s390/crypto/zcrypt_pcica.h index 3be11187f6df..9a59155cad51 100644 --- a/drivers/s390/crypto/zcrypt_pcica.h +++ b/drivers/s390/crypto/zcrypt_pcica.h | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/zcrypt_pcica.h | ||
3 | * | ||
4 | * zcrypt 2.1.0 | 2 | * zcrypt 2.1.0 |
5 | * | 3 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 4 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 5 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 6 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * | 7 | * |
diff --git a/drivers/s390/crypto/zcrypt_pcicc.c b/drivers/s390/crypto/zcrypt_pcicc.c index e5dd335fda53..0d90a4334055 100644 --- a/drivers/s390/crypto/zcrypt_pcicc.c +++ b/drivers/s390/crypto/zcrypt_pcicc.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/zcrypt_pcicc.c | ||
3 | * | ||
4 | * zcrypt 2.1.0 | 2 | * zcrypt 2.1.0 |
5 | * | 3 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 4 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 5 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 6 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * | 7 | * |
@@ -68,7 +66,7 @@ static struct ap_device_id zcrypt_pcicc_ids[] = { | |||
68 | MODULE_DEVICE_TABLE(ap, zcrypt_pcicc_ids); | 66 | MODULE_DEVICE_TABLE(ap, zcrypt_pcicc_ids); |
69 | MODULE_AUTHOR("IBM Corporation"); | 67 | MODULE_AUTHOR("IBM Corporation"); |
70 | MODULE_DESCRIPTION("PCICC Cryptographic Coprocessor device driver, " | 68 | MODULE_DESCRIPTION("PCICC Cryptographic Coprocessor device driver, " |
71 | "Copyright 2001, 2006 IBM Corporation"); | 69 | "Copyright IBM Corp. 2001, 2006"); |
72 | MODULE_LICENSE("GPL"); | 70 | MODULE_LICENSE("GPL"); |
73 | 71 | ||
74 | static int zcrypt_pcicc_probe(struct ap_device *ap_dev); | 72 | static int zcrypt_pcicc_probe(struct ap_device *ap_dev); |
diff --git a/drivers/s390/crypto/zcrypt_pcicc.h b/drivers/s390/crypto/zcrypt_pcicc.h index 6d4454846c8f..7fe27e15075b 100644 --- a/drivers/s390/crypto/zcrypt_pcicc.h +++ b/drivers/s390/crypto/zcrypt_pcicc.h | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/zcrypt_pcicc.h | ||
3 | * | ||
4 | * zcrypt 2.1.0 | 2 | * zcrypt 2.1.0 |
5 | * | 3 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 4 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 5 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 6 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * | 7 | * |
diff --git a/drivers/s390/crypto/zcrypt_pcixcc.c b/drivers/s390/crypto/zcrypt_pcixcc.c index f7cc43401816..ccb4f8b60c75 100644 --- a/drivers/s390/crypto/zcrypt_pcixcc.c +++ b/drivers/s390/crypto/zcrypt_pcixcc.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/zcrypt_pcixcc.c | ||
3 | * | ||
4 | * zcrypt 2.1.0 | 2 | * zcrypt 2.1.0 |
5 | * | 3 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 4 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 5 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 6 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * | 7 | * |
@@ -78,7 +76,7 @@ static struct ap_device_id zcrypt_pcixcc_ids[] = { | |||
78 | MODULE_DEVICE_TABLE(ap, zcrypt_pcixcc_ids); | 76 | MODULE_DEVICE_TABLE(ap, zcrypt_pcixcc_ids); |
79 | MODULE_AUTHOR("IBM Corporation"); | 77 | MODULE_AUTHOR("IBM Corporation"); |
80 | MODULE_DESCRIPTION("PCIXCC Cryptographic Coprocessor device driver, " | 78 | MODULE_DESCRIPTION("PCIXCC Cryptographic Coprocessor device driver, " |
81 | "Copyright 2001, 2006 IBM Corporation"); | 79 | "Copyright IBM Corp. 2001, 2006"); |
82 | MODULE_LICENSE("GPL"); | 80 | MODULE_LICENSE("GPL"); |
83 | 81 | ||
84 | static int zcrypt_pcixcc_probe(struct ap_device *ap_dev); | 82 | static int zcrypt_pcixcc_probe(struct ap_device *ap_dev); |
diff --git a/drivers/s390/crypto/zcrypt_pcixcc.h b/drivers/s390/crypto/zcrypt_pcixcc.h index 8cb7d7a6973b..c7cdf599e46b 100644 --- a/drivers/s390/crypto/zcrypt_pcixcc.h +++ b/drivers/s390/crypto/zcrypt_pcixcc.h | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/crypto/zcrypt_pcixcc.h | ||
3 | * | ||
4 | * zcrypt 2.1.0 | 2 | * zcrypt 2.1.0 |
5 | * | 3 | * |
6 | * Copyright (C) 2001, 2006 IBM Corporation | 4 | * Copyright IBM Corp. 2001, 2006 |
7 | * Author(s): Robert Burroughs | 5 | * Author(s): Robert Burroughs |
8 | * Eric Rossman (edrossma@us.ibm.com) | 6 | * Eric Rossman (edrossma@us.ibm.com) |
9 | * | 7 | * |
diff --git a/drivers/s390/kvm/kvm_virtio.c b/drivers/s390/kvm/kvm_virtio.c index d74e9ae6dfb3..b67ee0408267 100644 --- a/drivers/s390/kvm/kvm_virtio.c +++ b/drivers/s390/kvm/kvm_virtio.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * kvm_virtio.c - virtio for kvm on s390 | 2 | * virtio for kvm on s390 |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2008 | 4 | * Copyright IBM Corp. 2008 |
5 | * | 5 | * |
diff --git a/drivers/s390/net/claw.c b/drivers/s390/net/claw.c index 6b1ff90d2f00..a0a4afe537d0 100644 --- a/drivers/s390/net/claw.c +++ b/drivers/s390/net/claw.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/claw.c | ||
3 | * ESCON CLAW network driver | 2 | * ESCON CLAW network driver |
4 | * | 3 | * |
5 | * Linux for zSeries version | 4 | * Linux for zSeries version |
@@ -3380,5 +3379,5 @@ module_exit(claw_cleanup); | |||
3380 | 3379 | ||
3381 | MODULE_AUTHOR("Andy Richter <richtera@us.ibm.com>"); | 3380 | MODULE_AUTHOR("Andy Richter <richtera@us.ibm.com>"); |
3382 | MODULE_DESCRIPTION("Linux for System z CLAW Driver\n" \ | 3381 | MODULE_DESCRIPTION("Linux for System z CLAW Driver\n" \ |
3383 | "Copyright 2000,2008 IBM Corporation\n"); | 3382 | "Copyright IBM Corp. 2000, 2008\n"); |
3384 | MODULE_LICENSE("GPL"); | 3383 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/s390/net/ctcm_dbug.c b/drivers/s390/net/ctcm_dbug.c index d962fd741a23..6514e1cb3f1c 100644 --- a/drivers/s390/net/ctcm_dbug.c +++ b/drivers/s390/net/ctcm_dbug.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/ctcm_dbug.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2001, 2007 | 2 | * Copyright IBM Corp. 2001, 2007 |
5 | * Authors: Peter Tiedemann (ptiedem@de.ibm.com) | 3 | * Authors: Peter Tiedemann (ptiedem@de.ibm.com) |
6 | * | 4 | * |
diff --git a/drivers/s390/net/ctcm_dbug.h b/drivers/s390/net/ctcm_dbug.h index 26966d0b9abd..47bf0501995e 100644 --- a/drivers/s390/net/ctcm_dbug.h +++ b/drivers/s390/net/ctcm_dbug.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/ctcm_dbug.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2001, 2007 | 2 | * Copyright IBM Corp. 2001, 2007 |
5 | * Authors: Peter Tiedemann (ptiedem@de.ibm.com) | 3 | * Authors: Peter Tiedemann (ptiedem@de.ibm.com) |
6 | * | 4 | * |
diff --git a/drivers/s390/net/ctcm_fsms.c b/drivers/s390/net/ctcm_fsms.c index a69766900a17..d4ade9e92fbb 100644 --- a/drivers/s390/net/ctcm_fsms.c +++ b/drivers/s390/net/ctcm_fsms.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/ctcm_fsms.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2001, 2007 | 2 | * Copyright IBM Corp. 2001, 2007 |
5 | * Authors: Fritz Elfert (felfert@millenux.com) | 3 | * Authors: Fritz Elfert (felfert@millenux.com) |
6 | * Peter Tiedemann (ptiedem@de.ibm.com) | 4 | * Peter Tiedemann (ptiedem@de.ibm.com) |
diff --git a/drivers/s390/net/ctcm_fsms.h b/drivers/s390/net/ctcm_fsms.h index 046d077fabbb..c963d04799c0 100644 --- a/drivers/s390/net/ctcm_fsms.h +++ b/drivers/s390/net/ctcm_fsms.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/ctcm_fsms.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2001, 2007 | 2 | * Copyright IBM Corp. 2001, 2007 |
5 | * Authors: Fritz Elfert (felfert@millenux.com) | 3 | * Authors: Fritz Elfert (felfert@millenux.com) |
6 | * Peter Tiedemann (ptiedem@de.ibm.com) | 4 | * Peter Tiedemann (ptiedem@de.ibm.com) |
diff --git a/drivers/s390/net/ctcm_main.c b/drivers/s390/net/ctcm_main.c index 3cd25544a27a..5227e5734a9d 100644 --- a/drivers/s390/net/ctcm_main.c +++ b/drivers/s390/net/ctcm_main.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/ctcm_main.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2001, 2009 | 2 | * Copyright IBM Corp. 2001, 2009 |
5 | * Author(s): | 3 | * Author(s): |
6 | * Original CTC driver(s): | 4 | * Original CTC driver(s): |
diff --git a/drivers/s390/net/ctcm_main.h b/drivers/s390/net/ctcm_main.h index b9056a55d995..477c933685f3 100644 --- a/drivers/s390/net/ctcm_main.h +++ b/drivers/s390/net/ctcm_main.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/ctcm_main.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2001, 2007 | 2 | * Copyright IBM Corp. 2001, 2007 |
5 | * Authors: Fritz Elfert (felfert@millenux.com) | 3 | * Authors: Fritz Elfert (felfert@millenux.com) |
6 | * Peter Tiedemann (ptiedem@de.ibm.com) | 4 | * Peter Tiedemann (ptiedem@de.ibm.com) |
diff --git a/drivers/s390/net/ctcm_mpc.c b/drivers/s390/net/ctcm_mpc.c index ac7975b7a837..05b734a2b5b7 100644 --- a/drivers/s390/net/ctcm_mpc.c +++ b/drivers/s390/net/ctcm_mpc.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/ctcm_mpc.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2004, 2007 | 2 | * Copyright IBM Corp. 2004, 2007 |
5 | * Authors: Belinda Thompson (belindat@us.ibm.com) | 3 | * Authors: Belinda Thompson (belindat@us.ibm.com) |
6 | * Andy Richter (richtera@us.ibm.com) | 4 | * Andy Richter (richtera@us.ibm.com) |
diff --git a/drivers/s390/net/ctcm_mpc.h b/drivers/s390/net/ctcm_mpc.h index 1fa07b0c11c0..bd1b1cc54ffa 100644 --- a/drivers/s390/net/ctcm_mpc.h +++ b/drivers/s390/net/ctcm_mpc.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/ctcm_mpc.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * Authors: Peter Tiedemann (ptiedem@de.ibm.com) | 3 | * Authors: Peter Tiedemann (ptiedem@de.ibm.com) |
6 | * | 4 | * |
diff --git a/drivers/s390/net/ctcm_sysfs.c b/drivers/s390/net/ctcm_sysfs.c index 0c27ae726475..985b5dcbdac8 100644 --- a/drivers/s390/net/ctcm_sysfs.c +++ b/drivers/s390/net/ctcm_sysfs.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/ctcm_sysfs.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007, 2007 | 2 | * Copyright IBM Corp. 2007, 2007 |
5 | * Authors: Peter Tiedemann (ptiedem@de.ibm.com) | 3 | * Authors: Peter Tiedemann (ptiedem@de.ibm.com) |
6 | * | 4 | * |
diff --git a/drivers/s390/net/qeth_core.h b/drivers/s390/net/qeth_core.h index 06e8f31ff3dc..fa7adad6f9ba 100644 --- a/drivers/s390/net/qeth_core.h +++ b/drivers/s390/net/qeth_core.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/qeth_core.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, | 3 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, |
6 | * Frank Pavlic <fpavlic@de.ibm.com>, | 4 | * Frank Pavlic <fpavlic@de.ibm.com>, |
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index e118e1e1e1c1..7a8b09612c41 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/qeth_core_main.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007, 2009 | 2 | * Copyright IBM Corp. 2007, 2009 |
5 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, | 3 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, |
6 | * Frank Pavlic <fpavlic@de.ibm.com>, | 4 | * Frank Pavlic <fpavlic@de.ibm.com>, |
diff --git a/drivers/s390/net/qeth_core_mpc.c b/drivers/s390/net/qeth_core_mpc.c index 7fab6544def6..5cebfddb86bd 100644 --- a/drivers/s390/net/qeth_core_mpc.c +++ b/drivers/s390/net/qeth_core_mpc.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/qeth_core_mpc.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Frank Pavlic <fpavlic@de.ibm.com>, | 3 | * Author(s): Frank Pavlic <fpavlic@de.ibm.com>, |
6 | * Thomas Spatzier <tspat@de.ibm.com>, | 4 | * Thomas Spatzier <tspat@de.ibm.com>, |
diff --git a/drivers/s390/net/qeth_core_mpc.h b/drivers/s390/net/qeth_core_mpc.h index a11b30c38423..3690bbf2cb3c 100644 --- a/drivers/s390/net/qeth_core_mpc.h +++ b/drivers/s390/net/qeth_core_mpc.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/qeth_core_mpc.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Frank Pavlic <fpavlic@de.ibm.com>, | 3 | * Author(s): Frank Pavlic <fpavlic@de.ibm.com>, |
6 | * Thomas Spatzier <tspat@de.ibm.com>, | 4 | * Thomas Spatzier <tspat@de.ibm.com>, |
diff --git a/drivers/s390/net/qeth_core_sys.c b/drivers/s390/net/qeth_core_sys.c index f163af575c48..9655dc0ea0ec 100644 --- a/drivers/s390/net/qeth_core_sys.c +++ b/drivers/s390/net/qeth_core_sys.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/qeth_core_sys.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, | 3 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, |
6 | * Frank Pavlic <fpavlic@de.ibm.com>, | 4 | * Frank Pavlic <fpavlic@de.ibm.com>, |
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c index 426986518e96..d86f645a76da 100644 --- a/drivers/s390/net/qeth_l2_main.c +++ b/drivers/s390/net/qeth_l2_main.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/qeth_l2_main.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007, 2009 | 2 | * Copyright IBM Corp. 2007, 2009 |
5 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, | 3 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, |
6 | * Frank Pavlic <fpavlic@de.ibm.com>, | 4 | * Frank Pavlic <fpavlic@de.ibm.com>, |
diff --git a/drivers/s390/net/qeth_l3.h b/drivers/s390/net/qeth_l3.h index e367315a63f0..29c1c00e3a0f 100644 --- a/drivers/s390/net/qeth_l3.h +++ b/drivers/s390/net/qeth_l3.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/qeth_l3.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, | 3 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, |
6 | * Frank Pavlic <fpavlic@de.ibm.com>, | 4 | * Frank Pavlic <fpavlic@de.ibm.com>, |
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c index 7be5e9775691..f0045ca8a766 100644 --- a/drivers/s390/net/qeth_l3_main.c +++ b/drivers/s390/net/qeth_l3_main.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/qeth_l3_main.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007, 2009 | 2 | * Copyright IBM Corp. 2007, 2009 |
5 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, | 3 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, |
6 | * Frank Pavlic <fpavlic@de.ibm.com>, | 4 | * Frank Pavlic <fpavlic@de.ibm.com>, |
diff --git a/drivers/s390/net/qeth_l3_sys.c b/drivers/s390/net/qeth_l3_sys.c index 4cafedf950ad..ebc379486267 100644 --- a/drivers/s390/net/qeth_l3_sys.c +++ b/drivers/s390/net/qeth_l3_sys.c | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/net/qeth_l3_sys.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | 2 | * Copyright IBM Corp. 2007 |
5 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, | 3 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com>, |
6 | * Frank Pavlic <fpavlic@de.ibm.com>, | 4 | * Frank Pavlic <fpavlic@de.ibm.com>, |
diff --git a/drivers/s390/net/smsgiucv.h b/drivers/s390/net/smsgiucv.h index 149a1151608d..45bc925928ca 100644 --- a/drivers/s390/net/smsgiucv.h +++ b/drivers/s390/net/smsgiucv.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * IUCV special message driver | 2 | * IUCV special message driver |
3 | * | 3 | * |
4 | * Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation | 4 | * Copyright IBM Corp. 2003 |
5 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) | 5 | * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) |
6 | */ | 6 | */ |
7 | 7 | ||
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c index 086018109662..aff8621de806 100644 --- a/drivers/s390/scsi/zfcp_aux.c +++ b/drivers/s390/scsi/zfcp_aux.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Module interface and handling of zfcp data structures. | 4 | * Module interface and handling of zfcp data structures. |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2002, 2010 | 6 | * Copyright IBM Corp. 2002, 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | /* | 9 | /* |
diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c index 96f13ad88123..e37f04551948 100644 --- a/drivers/s390/scsi/zfcp_ccw.c +++ b/drivers/s390/scsi/zfcp_ccw.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Registration and callback for the s390 common I/O layer. | 4 | * Registration and callback for the s390 common I/O layer. |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2002, 2010 | 6 | * Copyright IBM Corp. 2002, 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #define KMSG_COMPONENT "zfcp" | 9 | #define KMSG_COMPONENT "zfcp" |
diff --git a/drivers/s390/scsi/zfcp_cfdc.c b/drivers/s390/scsi/zfcp_cfdc.c index fab2c2592a97..fbd8b4db6025 100644 --- a/drivers/s390/scsi/zfcp_cfdc.c +++ b/drivers/s390/scsi/zfcp_cfdc.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * Access Control Lists / Control File Data Channel; | 5 | * Access Control Lists / Control File Data Channel; |
6 | * handling of response code and states for ports and LUNs. | 6 | * handling of response code and states for ports and LUNs. |
7 | * | 7 | * |
8 | * Copyright IBM Corporation 2008, 2010 | 8 | * Copyright IBM Corp. 2008, 2010 |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #define KMSG_COMPONENT "zfcp" | 11 | #define KMSG_COMPONENT "zfcp" |
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c index a9a816e4aa55..3c1d22097ad0 100644 --- a/drivers/s390/scsi/zfcp_dbf.c +++ b/drivers/s390/scsi/zfcp_dbf.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Debug traces for zfcp. | 4 | * Debug traces for zfcp. |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2002, 2010 | 6 | * Copyright IBM Corp. 2002, 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #define KMSG_COMPONENT "zfcp" | 9 | #define KMSG_COMPONENT "zfcp" |
diff --git a/drivers/s390/scsi/zfcp_def.h b/drivers/s390/scsi/zfcp_def.h index ed5d921e82cd..2955e1a3deaf 100644 --- a/drivers/s390/scsi/zfcp_def.h +++ b/drivers/s390/scsi/zfcp_def.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Global definitions for the zfcp device driver. | 4 | * Global definitions for the zfcp device driver. |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2002, 2010 | 6 | * Copyright IBM Corp. 2002, 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #ifndef ZFCP_DEF_H | 9 | #ifndef ZFCP_DEF_H |
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c index e1b4f800e226..92d3df6ac8ba 100644 --- a/drivers/s390/scsi/zfcp_erp.c +++ b/drivers/s390/scsi/zfcp_erp.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Error Recovery Procedures (ERP). | 4 | * Error Recovery Procedures (ERP). |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2002, 2010 | 6 | * Copyright IBM Corp. 2002, 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #define KMSG_COMPONENT "zfcp" | 9 | #define KMSG_COMPONENT "zfcp" |
diff --git a/drivers/s390/scsi/zfcp_ext.h b/drivers/s390/scsi/zfcp_ext.h index 2302e1cfb76c..36f422770ff5 100644 --- a/drivers/s390/scsi/zfcp_ext.h +++ b/drivers/s390/scsi/zfcp_ext.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * External function declarations. | 4 | * External function declarations. |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2002, 2010 | 6 | * Copyright IBM Corp. 2002, 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #ifndef ZFCP_EXT_H | 9 | #ifndef ZFCP_EXT_H |
diff --git a/drivers/s390/scsi/zfcp_fc.c b/drivers/s390/scsi/zfcp_fc.c index 297e6b71ce9c..88688a80b2c1 100644 --- a/drivers/s390/scsi/zfcp_fc.c +++ b/drivers/s390/scsi/zfcp_fc.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Fibre Channel related functions for the zfcp device driver. | 4 | * Fibre Channel related functions for the zfcp device driver. |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2008, 2010 | 6 | * Copyright IBM Corp. 2008, 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #define KMSG_COMPONENT "zfcp" | 9 | #define KMSG_COMPONENT "zfcp" |
diff --git a/drivers/s390/scsi/zfcp_fc.h b/drivers/s390/scsi/zfcp_fc.h index 4561f3bf7300..b1d2024ed513 100644 --- a/drivers/s390/scsi/zfcp_fc.h +++ b/drivers/s390/scsi/zfcp_fc.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * Fibre Channel related definitions and inline functions for the zfcp | 4 | * Fibre Channel related definitions and inline functions for the zfcp |
5 | * device driver | 5 | * device driver |
6 | * | 6 | * |
7 | * Copyright IBM Corporation 2009 | 7 | * Copyright IBM Corp. 2009 |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #ifndef ZFCP_FC_H | 10 | #ifndef ZFCP_FC_H |
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c index e9a787e2e6a5..e1c1efc2c5a0 100644 --- a/drivers/s390/scsi/zfcp_fsf.c +++ b/drivers/s390/scsi/zfcp_fsf.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Implementation of FSF commands. | 4 | * Implementation of FSF commands. |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2002, 2010 | 6 | * Copyright IBM Corp. 2002, 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #define KMSG_COMPONENT "zfcp" | 9 | #define KMSG_COMPONENT "zfcp" |
diff --git a/drivers/s390/scsi/zfcp_fsf.h b/drivers/s390/scsi/zfcp_fsf.h index db8c85382dca..5e795b86931b 100644 --- a/drivers/s390/scsi/zfcp_fsf.h +++ b/drivers/s390/scsi/zfcp_fsf.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Interface to the FSF support functions. | 4 | * Interface to the FSF support functions. |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2002, 2010 | 6 | * Copyright IBM Corp. 2002, 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #ifndef FSF_H | 9 | #ifndef FSF_H |
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c index e14da5751d32..b9fffc8d94a7 100644 --- a/drivers/s390/scsi/zfcp_qdio.c +++ b/drivers/s390/scsi/zfcp_qdio.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Setup and helper functions to access QDIO. | 4 | * Setup and helper functions to access QDIO. |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2002, 2010 | 6 | * Copyright IBM Corp. 2002, 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #define KMSG_COMPONENT "zfcp" | 9 | #define KMSG_COMPONENT "zfcp" |
diff --git a/drivers/s390/scsi/zfcp_qdio.h b/drivers/s390/scsi/zfcp_qdio.h index 8ac7f5342d29..497cd379b0d1 100644 --- a/drivers/s390/scsi/zfcp_qdio.h +++ b/drivers/s390/scsi/zfcp_qdio.h | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Header file for zfcp qdio interface | 4 | * Header file for zfcp qdio interface |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2010 | 6 | * Copyright IBM Corp. 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #ifndef ZFCP_QDIO_H | 9 | #ifndef ZFCP_QDIO_H |
diff --git a/drivers/s390/scsi/zfcp_reqlist.h b/drivers/s390/scsi/zfcp_reqlist.h index a72d1b730aba..7c2c6194dfca 100644 --- a/drivers/s390/scsi/zfcp_reqlist.h +++ b/drivers/s390/scsi/zfcp_reqlist.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * Data structure and helper functions for tracking pending FSF | 4 | * Data structure and helper functions for tracking pending FSF |
5 | * requests. | 5 | * requests. |
6 | * | 6 | * |
7 | * Copyright IBM Corporation 2009 | 7 | * Copyright IBM Corp. 2009 |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #ifndef ZFCP_REQLIST_H | 10 | #ifndef ZFCP_REQLIST_H |
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c index b79576b64f45..7b31e3f403f9 100644 --- a/drivers/s390/scsi/zfcp_scsi.c +++ b/drivers/s390/scsi/zfcp_scsi.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * Interface to Linux SCSI midlayer. | 4 | * Interface to Linux SCSI midlayer. |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2002, 2010 | 6 | * Copyright IBM Corp. 2002, 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #define KMSG_COMPONENT "zfcp" | 9 | #define KMSG_COMPONENT "zfcp" |
diff --git a/drivers/s390/scsi/zfcp_sysfs.c b/drivers/s390/scsi/zfcp_sysfs.c index cdc4ff78a7ba..c66af27b230b 100644 --- a/drivers/s390/scsi/zfcp_sysfs.c +++ b/drivers/s390/scsi/zfcp_sysfs.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * | 3 | * |
4 | * sysfs attributes. | 4 | * sysfs attributes. |
5 | * | 5 | * |
6 | * Copyright IBM Corporation 2008, 2010 | 6 | * Copyright IBM Corp. 2008, 2010 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #define KMSG_COMPONENT "zfcp" | 9 | #define KMSG_COMPONENT "zfcp" |
diff --git a/drivers/s390/scsi/zfcp_unit.c b/drivers/s390/scsi/zfcp_unit.c index 20796ebc33ce..3f2bff0d3aa2 100644 --- a/drivers/s390/scsi/zfcp_unit.c +++ b/drivers/s390/scsi/zfcp_unit.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * Tracking of manually configured LUNs and helper functions to | 4 | * Tracking of manually configured LUNs and helper functions to |
5 | * register the LUNs with the SCSI midlayer. | 5 | * register the LUNs with the SCSI midlayer. |
6 | * | 6 | * |
7 | * Copyright IBM Corporation 2010 | 7 | * Copyright IBM Corp. 2010 |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include "zfcp_def.h" | 10 | #include "zfcp_def.h" |