]> Pileus Git - ~andy/linux/commitdiff
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 24 Jul 2012 16:49:09 +0000 (09:49 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 24 Jul 2012 16:49:09 +0000 (09:49 -0700)
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:
arch/s390/appldata/appldata.h
arch/s390/appldata/appldata_base.c
arch/s390/appldata/appldata_mem.c
arch/s390/appldata/appldata_net_sum.c
arch/s390/appldata/appldata_os.c
arch/s390/crypto/aes_s390.c
arch/s390/crypto/crypt_s390.h
arch/s390/crypto/des_s390.c
arch/s390/crypto/prng.c
arch/s390/crypto/sha1_s390.c
arch/s390/crypto/sha256_s390.c
arch/s390/hypfs/hypfs.h
arch/s390/hypfs/hypfs_dbfs.c
arch/s390/hypfs/hypfs_diag.c
arch/s390/hypfs/hypfs_vm.c
arch/s390/hypfs/inode.c
arch/s390/include/asm/airq.h
arch/s390/include/asm/appldata.h
arch/s390/include/asm/atomic.h
arch/s390/include/asm/bitops.h
arch/s390/include/asm/bugs.h
arch/s390/include/asm/cache.h
arch/s390/include/asm/ccwdev.h
arch/s390/include/asm/ccwgroup.h
arch/s390/include/asm/checksum.h
arch/s390/include/asm/chpid.h
arch/s390/include/asm/chsc.h
arch/s390/include/asm/cio.h
arch/s390/include/asm/cpcmd.h
arch/s390/include/asm/cpu.h
arch/s390/include/asm/cputime.h
arch/s390/include/asm/crw.h
arch/s390/include/asm/current.h
arch/s390/include/asm/dasd.h
arch/s390/include/asm/debug.h
arch/s390/include/asm/delay.h
arch/s390/include/asm/dma.h
arch/s390/include/asm/ebcdic.h
arch/s390/include/asm/elf.h
arch/s390/include/asm/errno.h
arch/s390/include/asm/etr.h
arch/s390/include/asm/extmem.h
arch/s390/include/asm/hardirq.h
arch/s390/include/asm/idals.h
arch/s390/include/asm/io.h
arch/s390/include/asm/irqflags.h
arch/s390/include/asm/kexec.h
arch/s390/include/asm/kprobes.h
arch/s390/include/asm/kvm.h
arch/s390/include/asm/kvm_host.h
arch/s390/include/asm/kvm_para.h
arch/s390/include/asm/kvm_virtio.h
arch/s390/include/asm/lowcore.h
arch/s390/include/asm/mathemu.h
arch/s390/include/asm/mman.h
arch/s390/include/asm/mmu_context.h
arch/s390/include/asm/monwriter.h
arch/s390/include/asm/nmi.h
arch/s390/include/asm/page.h
arch/s390/include/asm/pgalloc.h
arch/s390/include/asm/pgtable.h
arch/s390/include/asm/posix_types.h
arch/s390/include/asm/processor.h
arch/s390/include/asm/ptrace.h
arch/s390/include/asm/qdio.h
arch/s390/include/asm/qeth.h
arch/s390/include/asm/reset.h
arch/s390/include/asm/resource.h
arch/s390/include/asm/rwsem.h
arch/s390/include/asm/sclp.h
arch/s390/include/asm/scsw.h
arch/s390/include/asm/setup.h
arch/s390/include/asm/shmparam.h
arch/s390/include/asm/sigcontext.h
arch/s390/include/asm/siginfo.h
arch/s390/include/asm/signal.h
arch/s390/include/asm/sigp.h [new file with mode: 0644]
arch/s390/include/asm/smp.h
arch/s390/include/asm/socket.h
arch/s390/include/asm/spinlock.h
arch/s390/include/asm/stat.h
arch/s390/include/asm/statfs.h
arch/s390/include/asm/string.h
arch/s390/include/asm/swab.h
arch/s390/include/asm/sysinfo.h
arch/s390/include/asm/tape390.h
arch/s390/include/asm/termios.h
arch/s390/include/asm/thread_info.h
arch/s390/include/asm/timer.h [deleted file]
arch/s390/include/asm/timex.h
arch/s390/include/asm/types.h
arch/s390/include/asm/uaccess.h
arch/s390/include/asm/ucontext.h
arch/s390/include/asm/unistd.h
arch/s390/include/asm/user.h
arch/s390/include/asm/vtimer.h [new file with mode: 0644]
arch/s390/include/asm/vtoc.h
arch/s390/include/asm/zcrypt.h
arch/s390/kernel/asm-offsets.c
arch/s390/kernel/base.S
arch/s390/kernel/bitmap.c
arch/s390/kernel/compat_exec_domain.c
arch/s390/kernel/compat_linux.c
arch/s390/kernel/compat_signal.c
arch/s390/kernel/compat_wrapper.S
arch/s390/kernel/cpcmd.c
arch/s390/kernel/crash.c
arch/s390/kernel/debug.c
arch/s390/kernel/dis.c
arch/s390/kernel/early.c
arch/s390/kernel/ebcdic.c
arch/s390/kernel/entry.S
arch/s390/kernel/entry.h
arch/s390/kernel/entry64.S
arch/s390/kernel/head.S
arch/s390/kernel/head31.S
arch/s390/kernel/head64.S
arch/s390/kernel/head_kdump.S
arch/s390/kernel/ipl.c
arch/s390/kernel/irq.c
arch/s390/kernel/kprobes.c
arch/s390/kernel/lgr.c
arch/s390/kernel/machine_kexec.c
arch/s390/kernel/mcount.S
arch/s390/kernel/mcount64.S
arch/s390/kernel/module.c
arch/s390/kernel/nmi.c
arch/s390/kernel/os_info.c
arch/s390/kernel/process.c
arch/s390/kernel/processor.c
arch/s390/kernel/ptrace.c
arch/s390/kernel/reipl.S
arch/s390/kernel/reipl64.S
arch/s390/kernel/relocate_kernel.S
arch/s390/kernel/relocate_kernel64.S
arch/s390/kernel/sclp.S
arch/s390/kernel/setup.c
arch/s390/kernel/signal.c
arch/s390/kernel/smp.c
arch/s390/kernel/stacktrace.c
arch/s390/kernel/swsusp_asm64.S
arch/s390/kernel/sys_s390.c
arch/s390/kernel/time.c
arch/s390/kernel/topology.c
arch/s390/kernel/traps.c
arch/s390/kernel/vtime.c
arch/s390/kvm/diag.c
arch/s390/kvm/gaccess.h
arch/s390/kvm/intercept.c
arch/s390/kvm/interrupt.c
arch/s390/kvm/kvm-s390.c
arch/s390/kvm/kvm-s390.h
arch/s390/kvm/priv.c
arch/s390/kvm/sigp.c
arch/s390/lib/delay.c
arch/s390/lib/div64.c
arch/s390/lib/spinlock.c
arch/s390/lib/string.c
arch/s390/lib/uaccess.h
arch/s390/lib/uaccess_mvcos.c
arch/s390/lib/uaccess_pt.c
arch/s390/lib/uaccess_std.c
arch/s390/math-emu/math.c
arch/s390/mm/cmm.c
arch/s390/mm/extmem.c
arch/s390/mm/fault.c
arch/s390/mm/hugetlbpage.c
arch/s390/mm/init.c
arch/s390/mm/mmap.c
arch/s390/mm/pgtable.c
arch/s390/mm/vmem.c
arch/s390/oprofile/backtrace.c
arch/s390/oprofile/hwsampler.c
arch/s390/oprofile/init.c
arch/s390/oprofile/op_counter.h
drivers/s390/block/dasd.c
drivers/s390/block/dasd_3990_erp.c
drivers/s390/block/dasd_alias.c
drivers/s390/block/dasd_devmap.c
drivers/s390/block/dasd_diag.c
drivers/s390/block/dasd_diag.h
drivers/s390/block/dasd_eckd.c
drivers/s390/block/dasd_eckd.h
drivers/s390/block/dasd_eer.c
drivers/s390/block/dasd_erp.c
drivers/s390/block/dasd_fba.c
drivers/s390/block/dasd_fba.h
drivers/s390/block/dasd_genhd.c
drivers/s390/block/dasd_int.h
drivers/s390/block/dasd_ioctl.c
drivers/s390/block/dasd_proc.c
drivers/s390/char/ctrlchar.c
drivers/s390/char/ctrlchar.h
drivers/s390/char/keyboard.c
drivers/s390/char/keyboard.h
drivers/s390/char/sclp_config.c
drivers/s390/char/sclp_cpi.c
drivers/s390/char/sclp_cpi_sys.c
drivers/s390/char/sclp_cpi_sys.h
drivers/s390/char/sclp_ocf.c
drivers/s390/char/sclp_quiesce.c
drivers/s390/char/sclp_sdias.c
drivers/s390/char/sclp_tty.c
drivers/s390/char/sclp_tty.h
drivers/s390/char/tape.h
drivers/s390/char/tape_34xx.c
drivers/s390/char/tape_3590.c
drivers/s390/char/tape_3590.h
drivers/s390/char/tape_char.c
drivers/s390/char/tape_class.c
drivers/s390/char/tape_class.h
drivers/s390/char/tape_core.c
drivers/s390/char/tape_proc.c
drivers/s390/char/tape_std.c
drivers/s390/char/tape_std.h
drivers/s390/char/tty3270.c
drivers/s390/char/tty3270.h
drivers/s390/char/vmcp.c
drivers/s390/char/vmcp.h
drivers/s390/char/vmlogrdr.c
drivers/s390/char/vmwatchdog.c
drivers/s390/char/zcore.c
drivers/s390/cio/airq.c
drivers/s390/cio/blacklist.c
drivers/s390/cio/chp.c
drivers/s390/cio/chp.h
drivers/s390/cio/chsc.c
drivers/s390/cio/cio.c
drivers/s390/cio/cmf.c
drivers/s390/cio/crw.c
drivers/s390/cio/device.c
drivers/s390/cio/device_fsm.c
drivers/s390/cio/device_id.c
drivers/s390/cio/device_pgid.c
drivers/s390/cio/device_status.c
drivers/s390/cio/idset.c
drivers/s390/cio/idset.h
drivers/s390/cio/qdio.h
drivers/s390/cio/qdio_debug.c
drivers/s390/cio/qdio_debug.h
drivers/s390/cio/qdio_main.c
drivers/s390/cio/qdio_setup.c
drivers/s390/cio/qdio_thinint.c
drivers/s390/crypto/ap_bus.c
drivers/s390/crypto/ap_bus.h
drivers/s390/crypto/zcrypt_api.c
drivers/s390/crypto/zcrypt_api.h
drivers/s390/crypto/zcrypt_cca_key.h
drivers/s390/crypto/zcrypt_cex2a.c
drivers/s390/crypto/zcrypt_cex2a.h
drivers/s390/crypto/zcrypt_error.h
drivers/s390/crypto/zcrypt_pcica.c
drivers/s390/crypto/zcrypt_pcica.h
drivers/s390/crypto/zcrypt_pcicc.c
drivers/s390/crypto/zcrypt_pcicc.h
drivers/s390/crypto/zcrypt_pcixcc.c
drivers/s390/crypto/zcrypt_pcixcc.h
drivers/s390/kvm/kvm_virtio.c
drivers/s390/net/claw.c
drivers/s390/net/ctcm_dbug.c
drivers/s390/net/ctcm_dbug.h
drivers/s390/net/ctcm_fsms.c
drivers/s390/net/ctcm_fsms.h
drivers/s390/net/ctcm_main.c
drivers/s390/net/ctcm_main.h
drivers/s390/net/ctcm_mpc.c
drivers/s390/net/ctcm_mpc.h
drivers/s390/net/ctcm_sysfs.c
drivers/s390/net/qeth_core.h
drivers/s390/net/qeth_core_main.c
drivers/s390/net/qeth_core_mpc.c
drivers/s390/net/qeth_core_mpc.h
drivers/s390/net/qeth_core_sys.c
drivers/s390/net/qeth_l2_main.c
drivers/s390/net/qeth_l3.h
drivers/s390/net/qeth_l3_main.c
drivers/s390/net/qeth_l3_sys.c
drivers/s390/net/smsgiucv.h
drivers/s390/scsi/zfcp_aux.c
drivers/s390/scsi/zfcp_ccw.c
drivers/s390/scsi/zfcp_cfdc.c
drivers/s390/scsi/zfcp_dbf.c
drivers/s390/scsi/zfcp_def.h
drivers/s390/scsi/zfcp_erp.c
drivers/s390/scsi/zfcp_ext.h
drivers/s390/scsi/zfcp_fc.c
drivers/s390/scsi/zfcp_fc.h
drivers/s390/scsi/zfcp_fsf.c
drivers/s390/scsi/zfcp_fsf.h
drivers/s390/scsi/zfcp_qdio.c
drivers/s390/scsi/zfcp_qdio.h
drivers/s390/scsi/zfcp_reqlist.h
drivers/s390/scsi/zfcp_scsi.c
drivers/s390/scsi/zfcp_sysfs.c
drivers/s390/scsi/zfcp_unit.c

index f0b23fc759ba35db19345bfa86be4dc6cd289859..4a67f2b5f6aa154e04898e07aea0cc3f6959f90a 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * arch/s390/appldata/appldata.h
- *
  * Definitions and interface for Linux - z/VM Monitor Stream.
  *
  * Copyright IBM Corp. 2003, 2008
index 24bff4f1cc52ba906a9a6432af6f4e1ebf16c818..bae0f402bf2ab7eb3c8c501c23bbd7e8f81e364a 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * arch/s390/appldata/appldata_base.c
- *
  * Base infrastructure for Linux-z/VM Monitor Stream, Stage 1.
  * Exports appldata_register_ops() and appldata_unregister_ops() for the
  * data gathering modules.
@@ -29,7 +27,7 @@
 #include <linux/suspend.h>
 #include <linux/platform_device.h>
 #include <asm/appldata.h>
-#include <asm/timer.h>
+#include <asm/vtimer.h>
 #include <asm/uaccess.h>
 #include <asm/io.h>
 #include <asm/smp.h>
@@ -84,8 +82,7 @@ static struct ctl_table appldata_dir_table[] = {
 /*
  * Timer
  */
-static DEFINE_PER_CPU(struct vtimer_list, appldata_timer);
-static atomic_t appldata_expire_count = ATOMIC_INIT(0);
+static struct vtimer_list appldata_timer;
 
 static DEFINE_SPINLOCK(appldata_timer_lock);
 static int appldata_interval = APPLDATA_CPU_INTERVAL;
@@ -115,10 +112,7 @@ static LIST_HEAD(appldata_ops_list);
  */
 static void appldata_timer_function(unsigned long data)
 {
-       if (atomic_dec_and_test(&appldata_expire_count)) {
-               atomic_set(&appldata_expire_count, num_online_cpus());
-               queue_work(appldata_wq, (struct work_struct *) data);
-       }
+       queue_work(appldata_wq, (struct work_struct *) data);
 }
 
 /*
@@ -131,7 +125,6 @@ static void appldata_work_fn(struct work_struct *work)
        struct list_head *lh;
        struct appldata_ops *ops;
 
-       get_online_cpus();
        mutex_lock(&appldata_ops_mutex);
        list_for_each(lh, &appldata_ops_list) {
                ops = list_entry(lh, struct appldata_ops, list);
@@ -140,7 +133,6 @@ static void appldata_work_fn(struct work_struct *work)
                }
        }
        mutex_unlock(&appldata_ops_mutex);
-       put_online_cpus();
 }
 
 /*
@@ -168,20 +160,6 @@ int appldata_diag(char record_nr, u16 function, unsigned long buffer,
 
 /****************************** /proc stuff **********************************/
 
-/*
- * appldata_mod_vtimer_wrap()
- *
- * wrapper function for mod_virt_timer(), because smp_call_function_single()
- * accepts only one parameter.
- */
-static void __appldata_mod_vtimer_wrap(void *p) {
-       struct {
-               struct vtimer_list *timer;
-               u64    expires;
-       } *args = p;
-       mod_virt_timer_periodic(args->timer, args->expires);
-}
-
 #define APPLDATA_ADD_TIMER     0
 #define APPLDATA_DEL_TIMER     1
 #define APPLDATA_MOD_TIMER     2
@@ -192,49 +170,28 @@ static void __appldata_mod_vtimer_wrap(void *p) {
  * Add, delete or modify virtual timers on all online cpus.
  * The caller needs to get the appldata_timer_lock spinlock.
  */
-static void
-__appldata_vtimer_setup(int cmd)
+static void __appldata_vtimer_setup(int cmd)
 {
-       u64 per_cpu_interval;
-       int i;
+       u64 timer_interval = (u64) appldata_interval * 1000 * TOD_MICRO;
 
        switch (cmd) {
        case APPLDATA_ADD_TIMER:
                if (appldata_timer_active)
                        break;
-               per_cpu_interval = (u64) (appldata_interval*1000 /
-                                         num_online_cpus()) * TOD_MICRO;
-               for_each_online_cpu(i) {
-                       per_cpu(appldata_timer, i).expires = per_cpu_interval;
-                       smp_call_function_single(i, add_virt_timer_periodic,
-                                                &per_cpu(appldata_timer, i),
-                                                1);
-               }
+               appldata_timer.expires = timer_interval;
+               add_virt_timer_periodic(&appldata_timer);
                appldata_timer_active = 1;
                break;
        case APPLDATA_DEL_TIMER:
-               for_each_online_cpu(i)
-                       del_virt_timer(&per_cpu(appldata_timer, i));
+               del_virt_timer(&appldata_timer);
                if (!appldata_timer_active)
                        break;
                appldata_timer_active = 0;
-               atomic_set(&appldata_expire_count, num_online_cpus());
                break;
        case APPLDATA_MOD_TIMER:
-               per_cpu_interval = (u64) (appldata_interval*1000 /
-                                         num_online_cpus()) * TOD_MICRO;
                if (!appldata_timer_active)
                        break;
-               for_each_online_cpu(i) {
-                       struct {
-                               struct vtimer_list *timer;
-                               u64    expires;
-                       } args;
-                       args.timer = &per_cpu(appldata_timer, i);
-                       args.expires = per_cpu_interval;
-                       smp_call_function_single(i, __appldata_mod_vtimer_wrap,
-                                                &args, 1);
-               }
+               mod_virt_timer_periodic(&appldata_timer, timer_interval);
        }
 }
 
@@ -265,14 +222,12 @@ appldata_timer_handler(ctl_table *ctl, int write,
        len = *lenp;
        if (copy_from_user(buf, buffer, len > sizeof(buf) ? sizeof(buf) : len))
                return -EFAULT;
-       get_online_cpus();
        spin_lock(&appldata_timer_lock);
        if (buf[0] == '1')
                __appldata_vtimer_setup(APPLDATA_ADD_TIMER);
        else if (buf[0] == '0')
                __appldata_vtimer_setup(APPLDATA_DEL_TIMER);
        spin_unlock(&appldata_timer_lock);
-       put_online_cpus();
 out:
        *lenp = len;
        *ppos += len;
@@ -305,20 +260,17 @@ appldata_interval_handler(ctl_table *ctl, int write,
                goto out;
        }
        len = *lenp;
-       if (copy_from_user(buf, buffer, len > sizeof(buf) ? sizeof(buf) : len)) {
+       if (copy_from_user(buf, buffer, len > sizeof(buf) ? sizeof(buf) : len))
                return -EFAULT;
-       }
        interval = 0;
        sscanf(buf, "%i", &interval);
        if (interval <= 0)
                return -EINVAL;
 
-       get_online_cpus();
        spin_lock(&appldata_timer_lock);
        appldata_interval = interval;
        __appldata_vtimer_setup(APPLDATA_MOD_TIMER);
        spin_unlock(&appldata_timer_lock);
-       put_online_cpus();
 out:
        *lenp = len;
        *ppos += len;
@@ -485,14 +437,12 @@ static int appldata_freeze(struct device *dev)
        int rc;
        struct list_head *lh;
 
-       get_online_cpus();
        spin_lock(&appldata_timer_lock);
        if (appldata_timer_active) {
                __appldata_vtimer_setup(APPLDATA_DEL_TIMER);
                appldata_timer_suspended = 1;
        }
        spin_unlock(&appldata_timer_lock);
-       put_online_cpus();
 
        mutex_lock(&appldata_ops_mutex);
        list_for_each(lh, &appldata_ops_list) {
@@ -516,14 +466,12 @@ static int appldata_restore(struct device *dev)
        int rc;
        struct list_head *lh;
 
-       get_online_cpus();
        spin_lock(&appldata_timer_lock);
        if (appldata_timer_suspended) {
                __appldata_vtimer_setup(APPLDATA_ADD_TIMER);
                appldata_timer_suspended = 0;
        }
        spin_unlock(&appldata_timer_lock);
-       put_online_cpus();
 
        mutex_lock(&appldata_ops_mutex);
        list_for_each(lh, &appldata_ops_list) {
@@ -567,53 +515,6 @@ static struct platform_driver appldata_pdrv = {
 
 /******************************* init / exit *********************************/
 
-static void __cpuinit appldata_online_cpu(int cpu)
-{
-       init_virt_timer(&per_cpu(appldata_timer, cpu));
-       per_cpu(appldata_timer, cpu).function = appldata_timer_function;
-       per_cpu(appldata_timer, cpu).data = (unsigned long)
-               &appldata_work;
-       atomic_inc(&appldata_expire_count);
-       spin_lock(&appldata_timer_lock);
-       __appldata_vtimer_setup(APPLDATA_MOD_TIMER);
-       spin_unlock(&appldata_timer_lock);
-}
-
-static void __cpuinit appldata_offline_cpu(int cpu)
-{
-       del_virt_timer(&per_cpu(appldata_timer, cpu));
-       if (atomic_dec_and_test(&appldata_expire_count)) {
-               atomic_set(&appldata_expire_count, num_online_cpus());
-               queue_work(appldata_wq, &appldata_work);
-       }
-       spin_lock(&appldata_timer_lock);
-       __appldata_vtimer_setup(APPLDATA_MOD_TIMER);
-       spin_unlock(&appldata_timer_lock);
-}
-
-static int __cpuinit appldata_cpu_notify(struct notifier_block *self,
-                                        unsigned long action,
-                                        void *hcpu)
-{
-       switch (action) {
-       case CPU_ONLINE:
-       case CPU_ONLINE_FROZEN:
-               appldata_online_cpu((long) hcpu);
-               break;
-       case CPU_DEAD:
-       case CPU_DEAD_FROZEN:
-               appldata_offline_cpu((long) hcpu);
-               break;
-       default:
-               break;
-       }
-       return NOTIFY_OK;
-}
-
-static struct notifier_block __cpuinitdata appldata_nb = {
-       .notifier_call = appldata_cpu_notify,
-};
-
 /*
  * appldata_init()
  *
@@ -621,7 +522,10 @@ static struct notifier_block __cpuinitdata appldata_nb = {
  */
 static int __init appldata_init(void)
 {
-       int i, rc;
+       int rc;
+
+       appldata_timer.function = appldata_timer_function;
+       appldata_timer.data = (unsigned long) &appldata_work;
 
        rc = platform_driver_register(&appldata_pdrv);
        if (rc)
@@ -639,14 +543,6 @@ static int __init appldata_init(void)
                goto out_device;
        }
 
-       get_online_cpus();
-       for_each_online_cpu(i)
-               appldata_online_cpu(i);
-       put_online_cpus();
-
-       /* Register cpu hotplug notifier */
-       register_hotcpu_notifier(&appldata_nb);
-
        appldata_sysctl_header = register_sysctl_table(appldata_dir_table);
        return 0;
 
index f7d3dc555bdbd5c44b45f7f2feeb75560d38887d..02d9a1cf5057d18b1b92b2e03e4d7889be97479d 100644 (file)
@@ -1,10 +1,8 @@
 /*
- * arch/s390/appldata/appldata_mem.c
- *
  * Data gathering module for Linux-VM Monitor Stream, Stage 1.
  * Collects data related to memory management.
  *
- * Copyright (C) 2003,2006 IBM Corporation, IBM Deutschland Entwicklung GmbH.
+ * Copyright IBM Corp. 2003, 2006
  *
  * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
  */
index 5da7c562a90b5dc557524ed1ae6f41bce7258bac..1370e358d49a3772ea7f8a27e33684478a683b58 100644 (file)
@@ -1,11 +1,9 @@
 /*
- * arch/s390/appldata/appldata_net_sum.c
- *
  * Data gathering module for Linux-VM Monitor Stream, Stage 1.
  * Collects accumulated network statistics (Packets received/transmitted,
  * dropped, errors, ...).
  *
- * Copyright (C) 2003,2006 IBM Corporation, IBM Deutschland Entwicklung GmbH.
+ * Copyright IBM Corp. 2003, 2006
  *
  * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
  */
index 4de031d6b76cf8a8662d12f0c6858c590a3a70ba..87521ba682e53276a135901e40225c59f3d0dc09 100644 (file)
@@ -1,10 +1,8 @@
 /*
- * arch/s390/appldata/appldata_os.c
- *
  * Data gathering module for Linux-VM Monitor Stream, Stage 1.
  * Collects misc. OS related data (CPU utilization, running processes).
  *
- * Copyright (C) 2003,2006 IBM Corporation, IBM Deutschland Entwicklung GmbH.
+ * Copyright IBM Corp. 2003, 2006
  *
  * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
  */
index a9ce135893f8c215e0ac19cb91b3429522010f6e..e402a9dd4eda67944893eeef40fa8d67a3066008 100644 (file)
@@ -4,7 +4,7 @@
  * s390 implementation of the AES Cipher Algorithm.
  *
  * s390 Version:
- *   Copyright IBM Corp. 2005,2007
+ *   Copyright IBM Corp. 2005, 2007
  *   Author(s): Jan Glauber (jang@de.ibm.com)
  *             Sebastian Siewior (sebastian@breakpoint.cc> SW-Fallback
  *
index 9178db6db0a5abaa44055f0f5224632513d97976..6c5cc6da71114e51e8430d2eaf5a32be6a676127 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Support for s390 cryptographic instructions.
  *
- *   Copyright IBM Corp. 2003,2007
+ *   Copyright IBM Corp. 2003, 2007
  *   Author(s): Thomas Spatzier
  *             Jan Glauber (jan.glauber@de.ibm.com)
  *
index a52bfd124d86e009184c8326a9e1b03bfeedf76e..1eaa371ca3eea30fd9856c70371ffda5a335e0a5 100644 (file)
@@ -3,7 +3,7 @@
  *
  * s390 implementation of the DES Cipher Algorithm.
  *
- * Copyright IBM Corp. 2003,2011
+ * Copyright IBM Corp. 2003, 2011
  * Author(s): Thomas Spatzier
  *           Jan Glauber (jan.glauber@de.ibm.com)
  *
index 0808fbf0f7d3770d5a0b4c2d3267bf4eeafd2492..94a35a4c1b486c02200f6be510ecafd8a59701c6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright IBM Corp. 2006,2007
+ * Copyright IBM Corp. 2006, 2007
  * Author(s): Jan Glauber <jan.glauber@de.ibm.com>
  * Driver for the s390 pseudo random number generator
  */
index e9868c6e0a08c0868a65d64a3999e2a48d5ee31b..a1b3a9dc9d8a0f420f6389bd56331890e259ab6b 100644 (file)
@@ -8,7 +8,7 @@
  * implementation written by Steve Reid.
  *
  * s390 Version:
- *   Copyright IBM Corp. 2003,2007
+ *   Copyright IBM Corp. 2003, 2007
  *   Author(s): Thomas Spatzier
  *             Jan Glauber (jan.glauber@de.ibm.com)
  *
index 0317a3547cb9982aa6e4d47a9fece44a603f94c5..9b853809a492b68e6781ba6a8c32e5a60fe78932 100644 (file)
@@ -4,7 +4,7 @@
  * s390 implementation of the SHA256 and SHA224 Secure Hash Algorithm.
  *
  * s390 Version:
- *   Copyright IBM Corp. 2005,2011
+ *   Copyright IBM Corp. 2005, 2011
  *   Author(s): Jan Glauber (jang@de.ibm.com)
  *
  * This program is free software; you can redistribute it and/or modify it
index d9df5a060a83fdb96ca567974ac443395872f094..f41e0ef7fdf94578166eafee6d55df6a6f946390 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  arch/s390/hypfs/hypfs.h
  *    Hypervisor filesystem for Linux on s390.
  *
- *    Copyright (C) IBM Corp. 2006
+ *    Copyright IBM Corp. 2006
  *    Author(s): Michael Holzheu <holzheu@de.ibm.com>
  */
 
index b478013b7fecedf9e409c004c0456f2586e818de..13e76dabbe8bd7d91df2182a6b83372e165368c4 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Hypervisor filesystem for Linux on s390 - debugfs interface
  *
- * Copyright (C) IBM Corp. 2010
+ * Copyright IBM Corp. 2010
  * Author(s): Michael Holzheu <holzheu@linux.vnet.ibm.com>
  */
 
index 74c8f5e76ce4fffdfedaa9c7745f9a34dacc4abc..7fd3690b676050eab20af1caf6a2c50b6a73aba0 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  arch/s390/hypfs/hypfs_diag.c
  *    Hypervisor filesystem for Linux on s390. Diag 204 and 224
  *    implementation.
  *
index e54796002f615c690a45167d16ba938f85c584c3..4f6afaa8bd8ff5182b9a7bb06a87ee4d5bb7d017 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *    Hypervisor filesystem for Linux on s390. z/VM implementation.
  *
- *    Copyright (C) IBM Corp. 2006
+ *    Copyright IBM Corp. 2006
  *    Author(s): Michael Holzheu <holzheu@de.ibm.com>
  */
 
index 73dae8b9b77a8c9f58c3c9e1f81f206b74dac04c..6767b437a103aa2eb9d46fc19df6732f188f040b 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  arch/s390/hypfs/inode.c
  *    Hypervisor filesystem for Linux on s390.
  *
  *    Copyright IBM Corp. 2006, 2008
@@ -103,6 +102,7 @@ static struct inode *hypfs_make_inode(struct super_block *sb, umode_t mode)
 
        if (ret) {
                struct hypfs_sb_info *hypfs_info = sb->s_fs_info;
+               ret->i_ino = get_next_ino();
                ret->i_mode = mode;
                ret->i_uid = hypfs_info->uid;
                ret->i_gid = hypfs_info->gid;
index 1ac80d6b05887815f0fceec4ed6e428c11849d99..9819891ed7a20c74d2804fe31723439ad88600e8 100644 (file)
@@ -1,7 +1,5 @@
 /*
- *  include/asm-s390/airq.h
- *
- *    Copyright IBM Corp. 2002,2007
+ *    Copyright IBM Corp. 2002, 2007
  *    Author(s): Ingo Adlung <adlung@de.ibm.com>
  *              Cornelia Huck <cornelia.huck@de.ibm.com>
  *              Arnd Bergmann <arndb@de.ibm.com>
index 79283dac8281453419dde45f78a28f4732553469..f328294faeae572f59c5b2dcd89f116299a8bd3b 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * include/asm-s390/appldata.h
- *
- * Copyright (C) IBM Corp. 2006
+ * Copyright IBM Corp. 2006
  *
  * Author(s): Melissa Howland <melissah@us.ibm.com>
  */
index 748347baecb8da6a9b22fb3daad326302c517ef0..c797832daa5f596bac9da8f5075d1bd2e006559c 100644 (file)
@@ -1,8 +1,5 @@
-#ifndef __ARCH_S390_ATOMIC__
-#define __ARCH_S390_ATOMIC__
-
 /*
- * Copyright 1999,2009 IBM Corp.
+ * Copyright IBM Corp. 1999, 2009
  * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *           Denis Joseph Barrow,
  *           Arnd Bergmann <arndb@de.ibm.com>,
@@ -13,6 +10,9 @@
  *
  */
 
+#ifndef __ARCH_S390_ATOMIC__
+#define __ARCH_S390_ATOMIC__
+
 #include <linux/compiler.h>
 #include <linux/types.h>
 #include <asm/cmpxchg.h>
index a6ff5a83e227279fe6e49dd9b6420eeca3400606..6f573890fb2853602271d2a16b0b39b792ff9cfe 100644 (file)
@@ -1,11 +1,6 @@
-#ifndef _S390_BITOPS_H
-#define _S390_BITOPS_H
-
 /*
- *  include/asm-s390/bitops.h
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
  *  Derived from "include/asm-i386/bitops.h"
@@ -13,6 +8,9 @@
  *
  */
 
+#ifndef _S390_BITOPS_H
+#define _S390_BITOPS_H
+
 #ifndef _LINUX_BITOPS_H
 #error only <linux/bitops.h> can be included directly
 #endif
index 011f1e6a2a6cd8af7078fbc39eed791368dd3056..0f5bd894f4dcfcbac666e3c5521c52c960d60623 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/bugs.h
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
  *  Derived from "include/asm-i386/bugs.h"
index 2a30d5ac0667aa6285eef8c3bb95a86ad04db809..4d7ccac5fd1d693e3875f2eac011d46ff3750a0e 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/cache.h
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *
  *  Derived from "include/asm-i386/cache.h"
  *    Copyright (C) 1992, Linus Torvalds
index 9381c92cc779b14afbf940fe5b4f56f54ad7d125..1cb4bb3f32d92709d11cee7f96c198d2689d3a77 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright  IBM Corp. 2002, 2009
+ * Copyright IBM Corp. 2002, 2009
  *
  * Author(s): Arnd Bergmann <arndb@de.ibm.com>
  *
index f2ef34f6d6e56b669ab3479a059ba37fd89efc7e..01a905eb11e036e2601580053af149ec1ef89da2 100644 (file)
@@ -6,14 +6,12 @@ struct ccw_driver;
 
 /**
  * struct ccwgroup_device - ccw group device
- * @creator_id: unique number of the driver
  * @state: online/offline state
  * @count: number of attached slave devices
  * @dev: embedded device structure
  * @cdev: variable number of slave devices, allocated as needed
  */
 struct ccwgroup_device {
-       unsigned long creator_id;
        enum {
                CCWGROUP_OFFLINE,
                CCWGROUP_ONLINE,
index 6c00f6800a343b4569494d769ccadb95c4f6fe01..4f57a4f3909a1682822a61976cbc4e01f417dda5 100644 (file)
@@ -1,18 +1,16 @@
-#ifndef _S390_CHECKSUM_H
-#define _S390_CHECKSUM_H
-
 /*
- *  include/asm-s390/checksum.h
  *    S390 fast network checksum routines
- *    see also arch/S390/lib/checksum.c
  *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Ulrich Hild        (first version)
  *               Martin Schwidefsky (heavily optimized CKSM version)
  *               D.J. Barrow        (third attempt) 
  */
 
+#ifndef _S390_CHECKSUM_H
+#define _S390_CHECKSUM_H
+
 #include <asm/uaccess.h>
 
 /*
index 8e88e2221771bf41f2c379d460da4e8fd3499cdd..e5bde9f9291f9a57b7bd6cfce430f7a9c7e37160 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/cio/chpid.h
- *
  *    Copyright IBM Corp. 2007
  *    Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
  */
index 4943654ed7fd673c55ad324dacdbde891a6d45cc..bf115b49f444980d47a70f1a3f4232b50a52aec2 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * ioctl interface for /dev/chsc
  *
- * Copyright 2008 IBM Corp.
+ * Copyright IBM Corp. 2008
  * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
  */
 
index 4c8d4d5b8bd2ca545a1e35dcacaa4f45b115c083..77043aa44d67184549ae93d948acb13cea0bd678 100644 (file)
@@ -1,7 +1,4 @@
 /*
- *  include/asm-s390/cio.h
- *  include/asm-s390x/cio.h
- *
  * Common interface for I/O on S/390
  */
 #ifndef _ASM_S390_CIO_H_
index 48a9eab1642972f49d666188962e05d1d41af6f1..3dfadb5d648f5de6a14d2010a101d377dadb0787 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  arch/s390/kernel/cpcmd.h
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  *               Christian Borntraeger (cborntra@de.ibm.com),
  */
index e0b69540216f0839818fc4cfc3a18d98ee211415..f5a8e2fcde0c56a3ff17208e10c90cea2f5757b4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *    Copyright IBM Corp. 2000,2009
+ *    Copyright IBM Corp. 2000, 2009
  *    Author(s): Hartmut Penner <hp@de.ibm.com>,
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *              Christian Ehrhardt <ehrhardt@de.ibm.com>,
index 718374de9c7f3f75f658bbaedb54695760ed25eb..8709bdef233cc5a7a42d3b9bafc19d0682167849 100644 (file)
@@ -1,7 +1,5 @@
 /*
- *  include/asm-s390/cputime.h
- *
- *  (C) Copyright IBM Corp. 2004
+ *  Copyright IBM Corp. 2004
  *
  *  Author: Martin Schwidefsky <schwidefsky@de.ibm.com>
  */
@@ -167,12 +165,14 @@ static inline clock_t cputime64_to_clock_t(cputime64_t cputime)
 }
 
 struct s390_idle_data {
+       int nohz_delay;
        unsigned int sequence;
        unsigned long long idle_count;
-       unsigned long long idle_enter;
-       unsigned long long idle_exit;
        unsigned long long idle_time;
-       int nohz_delay;
+       unsigned long long clock_idle_enter;
+       unsigned long long clock_idle_exit;
+       unsigned long long timer_idle_enter;
+       unsigned long long timer_idle_exit;
 };
 
 DECLARE_PER_CPU(struct s390_idle_data, s390_idle);
index 749a97e61bea0b014cc54639a1d8b9528e62f8c7..7c31d3e25cd13a295d0bd632fb5127dbe7356ca0 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *   Data definitions for channel report processing
- *    Copyright IBM Corp. 2000,2009
+ *    Copyright IBM Corp. 2000, 2009
  *    Author(s): Ingo Adlung <adlung@de.ibm.com>,
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *              Cornelia Huck <cornelia.huck@de.ibm.com>,
index 7a68084ec2f0aa0443ff671048082562ca63c346..b80941f30df5518159e4fe5681ae56472bc90592 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/current.h
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
  *  Derived from "include/asm-i386/current.h"
index 0be28efe5b665a37df7fec66900f8cc521f5717f..38eca3ba40e28a3c5bb2e710bbca2f8e9e8d201d 100644 (file)
@@ -1,8 +1,7 @@
 /* 
- * File...........: linux/drivers/s390/block/dasd.c
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000
+ * Copyright IBM Corp. 1999, 2000
  * EMC Symmetrix ioctl Copyright EMC Corporation, 2008
  * Author.........: Nigel Hislop <hislop_nigel@emc.com>
  *
index 8a8245ed14d22b888c9691e43de7e9c573fd88cf..f39677e6ccdef3105776d6062ca8a11a9431367b 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  include/asm-s390/debug.h
  *   S/390 debug facility
  *
- *    Copyright (C) 1999, 2000 IBM Deutschland Entwicklung GmbH,
- *                             IBM Corporation
+ *    Copyright IBM Corp. 1999, 2000
  */
 
 #ifndef DEBUG_H
index 0e3b35f96be174c12df5d93e33acee36532bcb61..3f6e4095f4715f5c92aaf01b69b416efad9ac69f 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/delay.h
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
  *  Derived from "include/asm-i386/delay.h"
index 7425c6af6cd4c8a686bd28ce6972f575e12a4602..6fb6de4f15b0d987f377ddb3fbeabef949929ab2 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/dma.h
- *
  *  S390 version
  */
 
index 7f6f641d32f4b3b42e0eaeacbc03eef3beaf7855..c5befc5a3bf5757c98e0f5cedefa9bc4ec00815a 100644 (file)
@@ -1,9 +1,8 @@
 /*
- *  include/asm-s390/ebcdic.h
  *    EBCDIC -> ASCII, ASCII -> EBCDIC conversion routines.
  *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
  */
 
index 06151e6a309889a16b46e62efbc26798d8b0e42d..32e8449640facbef375b0a5cb1d33610290c3a7e 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/elf.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/elf.h"
index e41d5b37c4d651b43b20dd1920b6ffee1c001d67..395e97d8005e9f6698b4ac932aba046a80ba3324 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/errno.h
- *
  *  S390 version
  *
  */
index 538e1b36a726e71c2149e90041ff6cada6d2b2cc..a24b03b9fb647d44cdf78a7c4bbb8b82e26d8d9b 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/etr.h
- *
  *  Copyright IBM Corp. 2006
  *  Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
index 33837d7561843def942ad264591dfa8ca6584c7d..6276002d76ba64f6dc2c4690e49a2368ab27f10e 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390x/extmem.h
- *
  *  definitions for external memory segment support
- *  Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *  Copyright IBM Corp. 2003
  */
 
 #ifndef _ASM_S390X_DCSS_H
index 510ba9ef424887555770f3aa6267f03f055c1211..0c82ba86e997d5d088b019daa677968fccdaf7e6 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/hardirq.h
- *
  *  S390 version
- *    Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999, 2000
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  *               Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
  *
index aef0dde340d1f54b866874a9f14061b8237ef4dc..ea5a6e45fd936412b537b5fd34828a54f57ac325 100644 (file)
@@ -1,10 +1,9 @@
 /* 
- * File...........: linux/include/asm-s390x/idals.h
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  *                 Martin Schwidefsky <schwidefsky@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2000a
+ * Copyright IBM Corp. 2000
+ *
  * History of changes
  * 07/24/00 new file
  * 05/04/02 code restructuring.
index f81a0975cbea0efb88db7b8a123072f125f80e10..559e921a6bbafa082df673fa9989ea44d4a23427 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/io.h
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
  *  Derived from "include/asm-i386/io.h"
index 38fdf451febb475cae7ce93229596d78b75a01f1..37b9091ab8c010c88a22bb2851f0133b10c6f032 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *    Copyright IBM Corp. 2006,2010
+ *    Copyright IBM Corp. 2006, 2010
  *    Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
  */
 
index f4f38826eebb3347ed5c5039db329e1d318b2ef1..694bcd6bd927bff60bf76ceede7a222877e02999 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * include/asm-s390/kexec.h
- *
- * (C) Copyright IBM Corp. 2005
+ * Copyright IBM Corp. 2005
  *
  * Author(s): Rolf Adelsberger <adelsberger@de.ibm.com>
  *
index a231a9439c4bc23e4bfcbda841d294924ebfb7fa..dcf6948a875ca6d0b12b08100cc3d2362d28224b 100644 (file)
@@ -17,7 +17,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  *
- * Copyright (C) IBM Corporation, 2002, 2006
+ * Copyright IBM Corp. 2002, 2006
  *
  * 2002-Oct    Created by Vamsi Krishna S <vamsi_krishna@in.ibm.com> Kernel
  *             Probes initial implementation ( includes suggestions from
index bdcbe0f8dd7b6f6560931a35e12bfebe16394b01..d25da598ec6217321da63e1a839d20c68d3e9274 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef __LINUX_KVM_S390_H
 #define __LINUX_KVM_S390_H
 /*
- * asm-s390/kvm.h - KVM s390 specific structures and definitions
+ * KVM s390 specific structures and definitions
  *
  * Copyright IBM Corp. 2008
  *
index dd17537b9a9d2362a749a0325d8ed6b86b348ed0..b7841546991fe6a9b0f20d73f8a06cf65557e9c1 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * asm-s390/kvm_host.h - definition for kernel virtual machines on s390
+ * definition for kernel virtual machines on s390
  *
- * Copyright IBM Corp. 2008,2009
+ * Copyright IBM Corp. 2008, 2009
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License (version 2 only)
index a98832961035b6daf24d871d152faa2d228fb91e..da44867de60f6e1deaa6b8edbd35c9e834db027b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * asm-s390/kvm_para.h - definition for paravirtual devices on s390
+ * definition for paravirtual devices on s390
  *
  * Copyright IBM Corp. 2008
  *
index 72f614181eff834def19193915efd26a828f6f54..44a438ca9e72d320a2e0e31ae2753ceebee6deb0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * kvm_virtio.h - definition for virtio for kvm on s390
+ * definition for virtio for kvm on s390
  *
  * Copyright IBM Corp. 2008
  *
index 47853debb3b9de98eed2a3ac70a0cb95c3a19412..aab5555bbbdaecb1f52f8456ece7f1ee8f11a490 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *    Copyright IBM Corp. 1999,2012
+ *    Copyright IBM Corp. 1999, 2012
  *    Author(s): Hartmut Penner <hp@de.ibm.com>,
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *              Denis Joseph Barrow,
@@ -302,12 +302,7 @@ struct _lowcore {
         */
        __u64   ipib;                           /* 0x0e00 */
        __u32   ipib_checksum;                  /* 0x0e08 */
-       /*
-        * Because the vmcore_info pointer is not 8 byte aligned it never
-        * should not be accessed directly. For accessing the pointer, first
-        * copy it to a local pointer variable.
-        */
-       __u8    vmcore_info[8];                 /* 0x0e0c */
+       __u64   vmcore_info;                    /* 0x0e0c */
        __u8    pad_0x0e14[0x0e18-0x0e14];      /* 0x0e14 */
        __u64   os_info;                        /* 0x0e18 */
        __u8    pad_0x0e20[0x0f00-0x0e20];      /* 0x0e20 */
index e8dd1ba8edb0ac069a8217d3a2df708e6129a433..614dfaf47f71619740059d56f89df157b0f775d8 100644 (file)
@@ -1,9 +1,8 @@
 /*
- *  arch/s390/kernel/mathemu.h
  *    IEEE floating point emulation.
  *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
 
index d49760e63506dd401df1e2f81da69982ed6a468c..abc1932ac4e163b3a6f3df36e012dea0cac18d06 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/mman.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/mman.h"
index 69bdf72e95ecfd7fd5134640a48b929952a74747..5c63615f1349f862762ced5e20147acae7f2c5ec 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/mmu_context.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/mmu_context.h"
index f0cbf96c52e61efc5c696de38e6e9dddfc2eeca1..f845c8e2f86158f5d899ff7ac0a41fd3ebbb5dca 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * include/asm-s390/monwriter.h
- *
- * Copyright (C) IBM Corp. 2006
+ * Copyright IBM Corp. 2006
  * Character device driver for writing z/VM APPLDATA monitor records
  * Version 1.0
  * Author(s): Melissa Howland <melissah@us.ibm.com>
index f4b60441adcafb6ca1da3560c15a7437cd353002..35f8ec185616f07a1485b1bd7085133d3f299d07 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *   Machine check handler definitions
  *
- *    Copyright IBM Corp. 2000,2009
+ *    Copyright IBM Corp. 2000, 2009
  *    Author(s): Ingo Adlung <adlung@de.ibm.com>,
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *              Cornelia Huck <cornelia.huck@de.ibm.com>,
index f7ec548c2b9d4dbe1fec8496043c8e5bb36bbeb7..27ab3c7c1e8bc7e3e353b3eaefc0a806edc8400c 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/page.h
- *
  *  S390 version
- *    Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999, 2000
  *    Author(s): Hartmut Penner (hp@de.ibm.com)
  */
 
index 43078c1943948ca9b801dc60f684ef7025eed616..590c3219c63445f2214a1befc033b7d28e0cf10f 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/pgalloc.h
- *
  *  S390 version
- *    Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999, 2000
  *    Author(s): Hartmut Penner (hp@de.ibm.com)
  *               Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
index b3227415abdaca94d3f3dcc301cb7ce425cd6a9e..6bd7d74830171096c82ac74f5dc671dbb7098090 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/pgtable.h
- *
  *  S390 version
- *    Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999, 2000
  *    Author(s): Hartmut Penner (hp@de.ibm.com)
  *               Ulrich Weigand (weigand@de.ibm.com)
  *               Martin Schwidefsky (schwidefsky@de.ibm.com)
index 7be104c0f19230e157d569efb9a18002dfa4709d..7bcc14e395f0a2fd1d85ded571010e05c5c0392e 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/posix_types.h
- *
  *  S390 version
  *
  */
index 20d0585cf905675422ad406d406401eba2bd6f82..c40fa91e38a8da85fcad46d66435701f98076758 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/processor.h
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Hartmut Penner (hp@de.ibm.com),
  *               Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
@@ -348,4 +346,14 @@ extern void (*s390_base_ext_handler_fn)(void);
        ".previous\n"
 #endif
 
+extern int memcpy_real(void *, void *, size_t);
+extern void memcpy_absolute(void *, void *, size_t);
+
+#define mem_assign_absolute(dest, val) {                       \
+       __typeof__(dest) __tmp = (val);                         \
+                                                               \
+       BUILD_BUG_ON(sizeof(__tmp) != sizeof(val));             \
+       memcpy_absolute(&(dest), &__tmp, sizeof(__tmp));        \
+}
+
 #endif                                 /* __ASM_S390_PROCESSOR_H           */
index aeb77f01798504cd250aebbd8748516b8c64e113..d5f08ea566ed9ac9d03085f8c6ea5cfe378befd5 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/ptrace.h
- *
  *  S390 version
- *    Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999, 2000
  *    Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
  */
 
index f039d86adf6741c7e2d454c46c4d56fada7d21a2..57d0d7e794b18a1976b2b5901d0409e53a69d9a8 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * linux/include/asm-s390/qdio.h
- *
- * Copyright 2000,2008 IBM Corp.
+ * Copyright IBM Corp. 2000, 2008
  * Author(s): Utz Bacher <utz.bacher@de.ibm.com>
  *           Jan Glauber <jang@linux.vnet.ibm.com>
  *
index 2c7c898c03e47a83c822508a127efc9f2162f9de..3a896cf52589c7ee19ba383c83284ca2063763f2 100644 (file)
@@ -1,9 +1,7 @@
 /*
- * include/asm-s390/qeth.h
- *
  * ioctl definitions for qeth driver
  *
- * Copyright (C) 2004 IBM Corporation
+ * Copyright IBM Corp. 2004
  *
  * Author(s):  Thomas Spatzier <tspat@de.ibm.com>
  *
index 3d6ad4ad2a3f536a28d72164d43d57b887cb2724..804578587a7a87e6e0b9eb56a1aee121bf9d2fdf 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/reset.h
- *
  *    Copyright IBM Corp. 2006
  *    Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
  */
index 366c01de04f26895db9362a23792c92b105e0096..ec23d1c73c923e9fe45d057746b0f6b25c05a8df 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/resource.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/resources.h"
index 1ceee10264c3832bce52f2cae57070d549afc35c..487f9b64efb9a5f8d64d7a25fea34ae40e1faa29 100644 (file)
@@ -2,10 +2,8 @@
 #define _S390_RWSEM_H
 
 /*
- *  include/asm-s390/rwsem.h
- *
  *  S390 version
- *    Copyright (C) 2002 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 2002
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
  *  Based on asm-alpha/semaphore.h and asm-i386/rwsem.h
index bf238c55740bc56e7f60148eafc9f89ee99d09e5..8685d1fb8b75104b6fbb761247f26b543a65a7e6 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/sclp.h
- *
  *    Copyright IBM Corp. 2007
  *    Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
  */
index de389cb54d28aafe5b14733d5b8928546ae7ecb4..4071d00978cb3518eef684b7e3931f3de4d7d15e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Helper functions for scsw access.
  *
- *    Copyright IBM Corp. 2008,2009
+ *    Copyright IBM Corp. 2008, 2009
  *    Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
  */
 
index 40eb2ff88e9e59766cc7e1ba931e65a303e06a16..57e80534375a603f2f839893bfa6ebc2b79e5845 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/setup.h
- *
  *  S390 version
- *    Copyright IBM Corp. 1999,2010
+ *    Copyright IBM Corp. 1999, 2010
  */
 
 #ifndef _ASM_S390_SETUP_H
index c2e0c0508e73edc872c50ccbfa524ef50490c1dc..e985182738f82f0e76c1ebca4c5bd3fb29f8d8d8 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/shmparam.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/shmparam.h"
index aeb6e0b13329b512a3d1deb77ee84a349915cecc..584787f6ce44d88569b964bf8543a5c74475e030 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/sigcontext.h
- *
  *  S390 version
- *    Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999, 2000
  */
 
 #ifndef _ASM_S390_SIGCONTEXT_H
index e0ff1ab054beaf3ac61212a576818446855e9d83..91fd3e4b70ce0decf20f6c22bbb8bf0338180b27 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/siginfo.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/siginfo.h"
index cdf5cb2fe03f5aa0c2c45765a54536b78d88dde5..6d4d9d1faee9e24eac40741b2f24c8c9f3a3c5ae 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/signal.h
- *
  *  S390 version
  *
  *  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 (file)
index 0000000..7306270
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef __S390_ASM_SIGP_H
+#define __S390_ASM_SIGP_H
+
+/* SIGP order codes */
+#define SIGP_SENSE                   1
+#define SIGP_EXTERNAL_CALL           2
+#define SIGP_EMERGENCY_SIGNAL        3
+#define SIGP_STOP                    5
+#define SIGP_RESTART                 6
+#define SIGP_STOP_AND_STORE_STATUS    9
+#define SIGP_INITIAL_CPU_RESET      11
+#define SIGP_SET_PREFIX                     13
+#define SIGP_STORE_STATUS_AT_ADDRESS 14
+#define SIGP_SET_ARCHITECTURE       18
+#define SIGP_SENSE_RUNNING          21
+
+/* SIGP condition codes */
+#define SIGP_CC_ORDER_CODE_ACCEPTED 0
+#define SIGP_CC_STATUS_STORED      1
+#define SIGP_CC_BUSY               2
+#define SIGP_CC_NOT_OPERATIONAL            3
+
+/* SIGP cpu status bits */
+
+#define SIGP_STATUS_CHECK_STOP         0x00000010UL
+#define SIGP_STATUS_STOPPED            0x00000040UL
+#define SIGP_STATUS_INVALID_PARAMETER  0x00000100UL
+#define SIGP_STATUS_INCORRECT_STATE    0x00000200UL
+#define SIGP_STATUS_NOT_RUNNING                0x00000400UL
+
+#endif /* __S390_ASM_SIGP_H */
index 0b6f586c1383d616954ba35e6953d3ef688705d7..a0a8340daafafb90ad25c822949b6ace5a84a595 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *    Copyright IBM Corp. 1999,2012
+ *    Copyright IBM Corp. 1999, 2012
  *    Author(s): Denis Joseph Barrow,
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *              Heiko Carstens <heiko.carstens@de.ibm.com>,
index c91b720965c07063436949394acfb8cb7b2f74f9..69718cd6d63503e657a4878a1277ab260fa44bf7 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/socket.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/socket.h"
index fd94dfec8d081a0f3da4d740f48c4cc2cc68fd66..701fe8c59e1f0e9efc302e711eef5bcfe3db479a 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/spinlock.h
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
  *  Derived from "include/asm-i386/spinlock.h"
index d92959eebb65b8f8c024dedf6982fb31a1ccd4fc..b4ca97d91466a5f36cd4957eb7f090755e045f7d 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/stat.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/stat.h"
index 3be7fbd406c8603a0ddbbd2666b3a5c9f0a2621e..5acca0a34c20c7cd243f8843cce3a41655a8ee27 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/statfs.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/statfs.h"
index 8cc160c9e1cb108c2ce9829dc4c5684a34a3b4ae..1bd1352fa3b55ae3082aa5815ff6a2f1b2e6949c 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/string.h
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  */
 
index a3e4ebb32090dc10ab0692f320c3ae3137f0f7dc..da3bfe5cc161557f770d49dc0a1a67d10676b04a 100644 (file)
@@ -2,10 +2,8 @@
 #define _S390_SWAB_H
 
 /*
- *  include/asm-s390/swab.h
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
 
index 79d3d6e2e9c5681787ca1c8064c35b6a87992668..282ee36f6162a424a905b7e8afb670bbd9541444 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * definition for store system information stsi
  *
- * Copyright IBM Corp. 2001,2008
+ * Copyright IBM Corp. 2001, 2008
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License (version 2 only)
index 884fba48f1ff522e3fecd09cbf04deaeb7ca69cb..b2bc4bab79294210328534624946525c2c6f1b03 100644 (file)
@@ -1,10 +1,9 @@
 /*************************************************************************
  *
- * tape390.h
  *        enables user programs to display messages and control encryption
  *        on s390 tape devices
  *
- *        Copyright IBM Corp. 2001,2006
+ *        Copyright IBM Corp. 2001, 2006
  *        Author(s): Michael Holzheu <holzheu@de.ibm.com>
  *
  *************************************************************************/
index bc3a35cefc9629e4ebae31ee601d6a2432b14c5c..cb9fe2786b8174e3b1be80fdfd5705d6d171c9a9 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/termios.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/termios.h"
index 4e40b25cd0600e7d76fcdf38789f86fd32275839..bb08e2afc5de6c570787ce518d7aeda778a28b92 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/thread_info.h
- *
  *  S390 version
- *    Copyright (C) IBM Corp. 2002,2006
+ *    Copyright IBM Corp. 2002, 2006
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
 
diff --git a/arch/s390/include/asm/timer.h b/arch/s390/include/asm/timer.h
deleted file mode 100644 (file)
index 15d6479..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *  include/asm-s390/timer.h
- *
- *  (C) Copyright IBM Corp. 2003,2006
- *  Virtual CPU timer
- *
- *  Author: Jan Glauber (jang@de.ibm.com)
- */
-
-#ifndef _ASM_S390_TIMER_H
-#define _ASM_S390_TIMER_H
-
-#include <linux/timer.h>
-
-#define VTIMER_MAX_SLICE (0x7ffffffffffff000LL)
-
-struct vtimer_list {
-       struct list_head entry;
-
-       int cpu;
-       __u64 expires;
-       __u64 interval;
-
-       void (*function)(unsigned long);
-       unsigned long data;
-};
-
-/* the vtimer value will wrap after ca. 71 years */
-struct vtimer_queue {
-       struct list_head list;
-       spinlock_t lock;
-       __u64 timer;            /* last programmed timer */
-       __u64 elapsed;          /* elapsed time of timer expire values */
-       __u64 idle_enter;       /* cpu timer on idle enter */
-       __u64 idle_exit;        /* cpu timer on idle exit */
-};
-
-extern void init_virt_timer(struct vtimer_list *timer);
-extern void add_virt_timer(void *new);
-extern void add_virt_timer_periodic(void *new);
-extern int mod_virt_timer(struct vtimer_list *timer, __u64 expires);
-extern int mod_virt_timer_periodic(struct vtimer_list *timer, __u64 expires);
-extern int del_virt_timer(struct vtimer_list *timer);
-
-extern void init_cpu_vtimer(void);
-extern void vtime_init(void);
-
-extern void vtime_stop_cpu(void);
-extern void vtime_start_leave(void);
-
-#endif /* _ASM_S390_TIMER_H */
index 239ece9e53c133f182a810cb731688a268e3fdaa..fba4d66788a247c94adfba5c13ae750e19929496 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/timex.h
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *
  *  Derived from "include/asm-i386/timex.h"
  *    Copyright (C) 1992, Linus Torvalds
index 6c8c35f8df142b3b8e22dd21d3230a2403dcab38..6ba7c2c7217afa3fc6b221506a44449d3535d481 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/types.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/types.h"
index 1f3a79bcd262722e251d575009cec172a9c77509..a8ab18b18b54d0c87e8c1c6f7a160352fb7d073e 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  include/asm-s390/uaccess.h
- *
  *  S390 version
- *    Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999, 2000
  *    Author(s): Hartmut Penner (hp@de.ibm.com),
  *               Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
@@ -381,8 +379,6 @@ clear_user(void __user *to, unsigned long n)
        return n;
 }
 
-extern int memcpy_real(void *, void *, size_t);
-extern void memcpy_absolute(void *, void *, size_t);
 extern int copy_to_user_real(void __user *dest, void *src, size_t count);
 extern int copy_from_user_real(void *dest, void __user *src, size_t count);
 
index cfb874e66c9a1f7f9bed1e9c5c330c3aed4be455..200e06325c6a52448ac7926928940a62b24c5b90 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/ucontext.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/ucontext.h"
index 8a8008fe7b8f15354d4661d1bddf37e0ac05e16a..2e37157ba6a92cf48dd6360b994db0803f791624 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/unistd.h
- *
  *  S390 version
  *
  *  Derived from "include/asm-i386/unistd.h"
index 1b050e35fdc6f8448dada25aeb1790d16ee71f35..6ed1d1886333cb8c457c0bb1e12ceabcb0d2ca37 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  include/asm-s390/user.h
- *
  *  S390 version
  *
  *  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 (file)
index 0000000..bfe25d5
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ *  Copyright IBM Corp. 2003, 2012
+ *  Virtual CPU timer
+ *
+ *  Author(s): Jan Glauber <jan.glauber@de.ibm.com>
+ */
+
+#ifndef _ASM_S390_TIMER_H
+#define _ASM_S390_TIMER_H
+
+#define VTIMER_MAX_SLICE (0x7fffffffffffffffULL)
+
+struct vtimer_list {
+       struct list_head entry;
+       u64 expires;
+       u64 interval;
+       void (*function)(unsigned long);
+       unsigned long data;
+};
+
+extern void init_virt_timer(struct vtimer_list *timer);
+extern void add_virt_timer(struct vtimer_list *timer);
+extern void add_virt_timer_periodic(struct vtimer_list *timer);
+extern int mod_virt_timer(struct vtimer_list *timer, u64 expires);
+extern int mod_virt_timer_periodic(struct vtimer_list *timer, u64 expires);
+extern int del_virt_timer(struct vtimer_list *timer);
+
+extern void init_cpu_vtimer(void);
+extern void vtime_init(void);
+
+extern void vtime_stop_cpu(void);
+
+#endif /* _ASM_S390_TIMER_H */
index 8406a2b3157a2d98f16bc4485d83d452a58e9cc5..221419de275ec6736650fb6e22bbc4942835eb4f 100644 (file)
@@ -1,9 +1,7 @@
 /*
- * include/asm-s390/vtoc.h
- *
  * This file contains volume label definitions for DASD devices.
  *
- * (C) Copyright IBM Corp. 2005
+ * Copyright IBM Corp. 2005
  *
  * Author(s): Volker Sameske <sameske@de.ibm.com>
  *
index 00d3bbd44117fe2093abe6dfca8ec6d6bb3e93cf..e83fc116f5bf2c24ceb4f4b9aa663d7d1c291b8f 100644 (file)
@@ -3,7 +3,7 @@
  *
  *  zcrypt 2.1.0 (user-visible header)
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
index 83e6edf5cf17345d592636a49229394777600c82..45ef1a7b08f906b85ed929cb7dd9ce34da1ded9b 100644 (file)
@@ -9,7 +9,6 @@
 #include <linux/kbuild.h>
 #include <linux/sched.h>
 #include <asm/cputime.h>
-#include <asm/timer.h>
 #include <asm/vdso.h>
 #include <asm/pgtable.h>
 
@@ -72,11 +71,10 @@ int main(void)
        DEFINE(__CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
        BLANK();
        /* idle data offsets */
-       DEFINE(__IDLE_ENTER, offsetof(struct s390_idle_data, idle_enter));
-       DEFINE(__IDLE_EXIT, offsetof(struct s390_idle_data, idle_exit));
-       /* vtimer queue offsets */
-       DEFINE(__VQ_IDLE_ENTER, offsetof(struct vtimer_queue, idle_enter));
-       DEFINE(__VQ_IDLE_EXIT, offsetof(struct vtimer_queue, idle_exit));
+       DEFINE(__CLOCK_IDLE_ENTER, offsetof(struct s390_idle_data, clock_idle_enter));
+       DEFINE(__CLOCK_IDLE_EXIT, offsetof(struct s390_idle_data, clock_idle_exit));
+       DEFINE(__TIMER_IDLE_ENTER, offsetof(struct s390_idle_data, timer_idle_enter));
+       DEFINE(__TIMER_IDLE_EXIT, offsetof(struct s390_idle_data, timer_idle_exit));
        /* lowcore offsets */
        DEFINE(__LC_EXT_PARAMS, offsetof(struct _lowcore, ext_params));
        DEFINE(__LC_EXT_CPU_ADDR, offsetof(struct _lowcore, ext_cpu_addr));
@@ -131,6 +129,8 @@ int main(void)
        DEFINE(__LC_PANIC_STACK, offsetof(struct _lowcore, panic_stack));
        DEFINE(__LC_RESTART_STACK, offsetof(struct _lowcore, restart_stack));
        DEFINE(__LC_RESTART_FN, offsetof(struct _lowcore, restart_fn));
+       DEFINE(__LC_RESTART_DATA, offsetof(struct _lowcore, restart_data));
+       DEFINE(__LC_RESTART_SOURCE, offsetof(struct _lowcore, restart_source));
        DEFINE(__LC_USER_ASCE, offsetof(struct _lowcore, user_asce));
        DEFINE(__LC_INT_CLOCK, offsetof(struct _lowcore, int_clock));
        DEFINE(__LC_MCCK_CLOCK, offsetof(struct _lowcore, mcck_clock));
index c880ff72db44a0247f57c48450a230f682843ec1..797a823a22755d9b76f8c12717e043226c7395bd 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  arch/s390/kernel/base.S
  *
- *    Copyright IBM Corp. 2006,2007
+ *    Copyright IBM Corp. 2006, 2007
  *    Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
  *              Michael Holzheu <holzheu@de.ibm.com>
  */
@@ -9,6 +9,7 @@
 #include <linux/linkage.h>
 #include <asm/asm-offsets.h>
 #include <asm/ptrace.h>
+#include <asm/sigp.h>
 
 #ifdef CONFIG_64BIT
 
@@ -100,7 +101,7 @@ ENTRY(diag308_reset)
 .Lrestart_part2:
        lhi     %r0,0                   # Load r0 with zero
        lhi     %r1,2                   # Use mode 2 = ESAME (dump)
-       sigp    %r1,%r0,0x12            # Switch to ESAME mode
+       sigp    %r1,%r0,SIGP_SET_ARCHITECTURE   # Switch to ESAME mode
        sam64                           # Switch to 64 bit addressing mode
        larl    %r4,.Lctlregs           # Restore control registers
        lctlg   %c0,%c15,0(%r4)
index 3ae4757b006a8014a7898d1260429125dc6462b0..102da5e2303753b79f4d637d9f169646a77dd5ed 100644 (file)
@@ -2,7 +2,7 @@
  *    Bitmaps for set_bit, clear_bit, test_and_set_bit, ...
  *    See include/asm/{bitops.h|posix_types.h} for details
  *
- *    Copyright IBM Corp. 1999,2009
+ *    Copyright IBM Corp. 1999, 2009
  *    Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>,
  */
 
index 914d49444f92270d6492199bba9ab46d81ccff8d..765fabdada9fbb7c43e13d565b4872af1c97ba3e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Support for 32-bit Linux for S390 personality.
  *
- * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ * Copyright IBM Corp. 2000
  * Author(s): Gerhard Tonn (ton@de.ibm.com)
  *
  *
index 65426525d9f22f576788e88804bb893ff817cca5..d1225089a4bbe09519555c4f5336e283394ff03e 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  arch/s390x/kernel/linux32.c
- *
  *  S390 version
- *    Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 2000
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  *               Gerhard Tonn (ton@de.ibm.com)   
  *               Thomas Spatzier (tspat@de.ibm.com)
index 3c0c19830c37f5a0f7896d0a292762b794b30a74..a1e8a8694bb70561a8c78c35558ff3a635e2203e 100644 (file)
@@ -1,7 +1,5 @@
 /*
- *  arch/s390/kernel/compat_signal.c
- *
- *    Copyright (C) IBM Corp. 2000,2006
+ *    Copyright IBM Corp. 2000, 2006
  *    Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
  *               Gerhard Tonn (ton@de.ibm.com)                  
  *
index ff605a39cf435661a6ba6ab5dee05544239fae6b..e835d6d5b7fdc94ee90e5293087328d638c2f74f 100644 (file)
@@ -1,8 +1,7 @@
 /*
-*  arch/s390/kernel/compat_wrapper.S
 *    wrapper for 31 bit compatible system calls.
 *
-*    Copyright (C) IBM Corp. 2000,2006
+*    Copyright IBM Corp. 2000, 2006
 *    Author(s): Gerhard Tonn (ton@de.ibm.com),
 *              Thomas Spatzier (tspat@de.ibm.com)
 */
index e3dd886e1b3218e6b59ec29af4426879b6279570..d7b0c4d27880995d99b51be94b8d54a0cc903ea8 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  arch/s390/kernel/cpcmd.c
- *
  *  S390 version
- *    Copyright IBM Corp. 1999,2007
+ *    Copyright IBM Corp. 1999, 2007
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  *               Christian Borntraeger (cborntra@de.ibm.com),
  */
index 8cc7c9fa64f5fe6e8834e1b7190b831d885cf1ac..3819153de8bd2b33c90454c591bcc84be4552704 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * arch/s390/kernel/crash.c
- *
- * (C) Copyright IBM Corp. 2005
+ * Copyright IBM Corp. 2005
  *
  * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
  *
index 19e5e9eba546e26995f08d04f73dd74cc7fc45b0..21be961e8a43e643daa31a26680c91edf2a5ee66 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  arch/s390/kernel/debug.c
  *   S/390 debug facility
  *
  *    Copyright IBM Corp. 1999, 2012
index 3221c6fca8bb77ceedd9c6ee00b9c2018d45251d..1f6b428e276239d94927086f6d5b2ccc668fbe2b 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * arch/s390/kernel/dis.c
- *
  * Disassemble s390 instructions.
  *
  * Copyright IBM Corp. 2007
@@ -613,6 +611,7 @@ static struct insn opcode_b2[] = {
        { "sie", 0x14, INSTR_S_RD },
        { "pc", 0x18, INSTR_S_RD },
        { "sac", 0x19, INSTR_S_RD },
+       { "servc", 0x20, INSTR_RRE_RR },
        { "cfc", 0x1a, INSTR_S_RD },
        { "ipte", 0x21, INSTR_RRE_RR },
        { "ipm", 0x22, INSTR_RRE_R0 },
index 6684fff1755834f14837868248a31a66644f4575..bc95a8ebd9cc3810a0bfb83d34f10cca512d1d92 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  arch/s390/kernel/early.c
- *
  *    Copyright IBM Corp. 2007, 2009
  *    Author(s): Hongjie Yang <hongjie@us.ibm.com>,
  *              Heiko Carstens <heiko.carstens@de.ibm.com>
index cc0dc609d738c7e148acfd3855da42f8e303b784..b971c6be6298bd52c2fe00d170c2b1781547e0a0 100644 (file)
@@ -1,10 +1,9 @@
 /*
- *  arch/s390/kernel/ebcdic.c
  *    ECBDIC -> ASCII, ASCII -> ECBDIC,
  *    upper to lower case (EBCDIC) conversion tables.
  *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
  *               Martin Peschke <peschke@fh-brandenburg.de>
  */
index 1ae93b573d7dc35f09b4a4ef08722dce3e4212ea..870bad6d56fc4fb7a5a9e308446148a7efec6633 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  arch/s390/kernel/entry.S
  *    S390 low-level entry points.
  *
- *    Copyright (C) IBM Corp. 1999,2012
+ *    Copyright IBM Corp. 1999, 2012
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  *              Hartmut Penner (hp@de.ibm.com),
  *              Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com),
@@ -18,6 +17,7 @@
 #include <asm/asm-offsets.h>
 #include <asm/unistd.h>
 #include <asm/page.h>
+#include <asm/sigp.h>
 
 __PT_R0      = __PT_GPRS
 __PT_R1      = __PT_GPRS + 4
@@ -616,17 +616,13 @@ ext_skip:
  * Load idle PSW. The second "half" of this function is in cleanup_idle.
  */
 ENTRY(psw_idle)
-       st      %r4,__SF_EMPTY(%r15)
+       st      %r3,__SF_EMPTY(%r15)
        basr    %r1,0
        la      %r1,psw_idle_lpsw+4-.(%r1)
        st      %r1,__SF_EMPTY+4(%r15)
        oi      __SF_EMPTY+4(%r15),0x80
-       la      %r1,.Lvtimer_max-psw_idle_lpsw-4(%r1)
-       stck    __IDLE_ENTER(%r2)
-       ltr     %r5,%r5
-       stpt    __VQ_IDLE_ENTER(%r3)
-       jz      psw_idle_lpsw
-       spt     0(%r1)
+       stck    __CLOCK_IDLE_ENTER(%r2)
+       stpt    __TIMER_IDLE_ENTER(%r2)
 psw_idle_lpsw:
        lpsw    __SF_EMPTY(%r15)
        br      %r14
@@ -723,15 +719,17 @@ ENTRY(restart_int_handler)
        mvc     __PT_PSW(8,%r15),__LC_RST_OLD_PSW # store restart old psw
        ahi     %r15,-STACK_FRAME_OVERHEAD      # create stack frame on stack
        xc      0(STACK_FRAME_OVERHEAD,%r15),0(%r15)
-       lm      %r1,%r3,__LC_RESTART_FN         # load fn, parm & source cpu
+       l       %r1,__LC_RESTART_FN             # load fn, parm & source cpu
+       l       %r2,__LC_RESTART_DATA
+       l       %r3,__LC_RESTART_SOURCE
        ltr     %r3,%r3                         # test source cpu address
        jm      1f                              # negative -> skip source stop
-0:     sigp    %r4,%r3,1                       # sigp sense to source cpu
+0:     sigp    %r4,%r3,SIGP_SENSE              # sigp sense to source cpu
        brc     10,0b                           # wait for status stored
 1:     basr    %r14,%r1                        # call function
        stap    __SF_EMPTY(%r15)                # store cpu address
        lh      %r3,__SF_EMPTY(%r15)
-2:     sigp    %r4,%r3,5                       # sigp stop to current cpu
+2:     sigp    %r4,%r3,SIGP_STOP               # sigp stop to current cpu
        brc     2,2b
 3:     j       3b
 
@@ -883,33 +881,28 @@ cleanup_io_restore_insn:
 
 cleanup_idle:
        # copy interrupt clock & cpu timer
-       mvc     __IDLE_EXIT(8,%r2),__LC_INT_CLOCK
-       mvc     __VQ_IDLE_EXIT(8,%r3),__LC_ASYNC_ENTER_TIMER
+       mvc     __CLOCK_IDLE_EXIT(8,%r2),__LC_INT_CLOCK
+       mvc     __TIMER_IDLE_EXIT(8,%r2),__LC_ASYNC_ENTER_TIMER
        chi     %r11,__LC_SAVE_AREA_ASYNC
        je      0f
-       mvc     __IDLE_EXIT(8,%r2),__LC_MCCK_CLOCK
-       mvc     __VQ_IDLE_EXIT(8,%r3),__LC_MCCK_ENTER_TIMER
+       mvc     __CLOCK_IDLE_EXIT(8,%r2),__LC_MCCK_CLOCK
+       mvc     __TIMER_IDLE_EXIT(8,%r2),__LC_MCCK_ENTER_TIMER
 0:     # check if stck has been executed
        cl      %r9,BASED(cleanup_idle_insn)
        jhe     1f
-       mvc     __IDLE_ENTER(8,%r2),__IDLE_EXIT(%r2)
-       mvc     __VQ_IDLE_ENTER(8,%r3),__VQ_IDLE_EXIT(%r3)
-       j       2f
-1:     # check if the cpu timer has been reprogrammed
-       ltr     %r5,%r5
-       jz      2f
-       spt     __VQ_IDLE_ENTER(%r3)
-2:     # account system time going idle
+       mvc     __CLOCK_IDLE_ENTER(8,%r2),__CLOCK_IDLE_EXIT(%r2)
+       mvc     __TIMER_IDLE_ENTER(8,%r2),__TIMER_IDLE_EXIT(%r3)
+1:     # account system time going idle
        lm      %r9,%r10,__LC_STEAL_TIMER
-       ADD64   %r9,%r10,__IDLE_ENTER(%r2)
+       ADD64   %r9,%r10,__CLOCK_IDLE_ENTER(%r2)
        SUB64   %r9,%r10,__LC_LAST_UPDATE_CLOCK
        stm     %r9,%r10,__LC_STEAL_TIMER
-       mvc     __LC_LAST_UPDATE_CLOCK(8),__IDLE_EXIT(%r2)
+       mvc     __LC_LAST_UPDATE_CLOCK(8),__CLOCK_IDLE_EXIT(%r2)
        lm      %r9,%r10,__LC_SYSTEM_TIMER
        ADD64   %r9,%r10,__LC_LAST_UPDATE_TIMER
-       SUB64   %r9,%r10,__VQ_IDLE_ENTER(%r3)
+       SUB64   %r9,%r10,__TIMER_IDLE_ENTER(%r2)
        stm     %r9,%r10,__LC_SYSTEM_TIMER
-       mvc     __LC_LAST_UPDATE_TIMER(8),__VQ_IDLE_EXIT(%r3)
+       mvc     __LC_LAST_UPDATE_TIMER(8),__TIMER_IDLE_EXIT(%r2)
        # prepare return psw
        n       %r8,BASED(cleanup_idle_wait)    # clear wait state bit
        l       %r9,24(%r11)                    # return from psw_idle
index f66a229ab0b3fdf52308cb55c0ab627ef9564a7b..a5f4dc42a5db18843e54972cfdfb28216a30daa2 100644 (file)
@@ -5,7 +5,6 @@
 #include <linux/signal.h>
 #include <asm/ptrace.h>
 #include <asm/cputime.h>
-#include <asm/timer.h>
 
 extern void (*pgm_check_table[128])(struct pt_regs *);
 extern void *restart_stack;
@@ -17,8 +16,7 @@ void io_int_handler(void);
 void mcck_int_handler(void);
 void restart_int_handler(void);
 void restart_call_handler(void);
-void psw_idle(struct s390_idle_data *, struct vtimer_queue *,
-             unsigned long, int);
+void psw_idle(struct s390_idle_data *, unsigned long);
 
 asmlinkage long do_syscall_trace_enter(struct pt_regs *regs);
 asmlinkage void do_syscall_trace_exit(struct pt_regs *regs);
index 229fe1d07749ffa33944132fa1c9af0b221e977c..349b7eeb348a9ee9b2f4aac83ae1c4be0a728a27 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  arch/s390/kernel/entry64.S
  *    S390 low-level entry points.
  *
- *    Copyright (C) IBM Corp. 1999,2012
+ *    Copyright IBM Corp. 1999, 2012
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  *              Hartmut Penner (hp@de.ibm.com),
  *              Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com),
@@ -18,6 +17,7 @@
 #include <asm/asm-offsets.h>
 #include <asm/unistd.h>
 #include <asm/page.h>
+#include <asm/sigp.h>
 
 __PT_R0      = __PT_GPRS
 __PT_R1      = __PT_GPRS + 8
@@ -642,15 +642,11 @@ ext_skip:
  * Load idle PSW. The second "half" of this function is in cleanup_idle.
  */
 ENTRY(psw_idle)
-       stg     %r4,__SF_EMPTY(%r15)
+       stg     %r3,__SF_EMPTY(%r15)
        larl    %r1,psw_idle_lpsw+4
        stg     %r1,__SF_EMPTY+8(%r15)
-       larl    %r1,.Lvtimer_max
-       STCK    __IDLE_ENTER(%r2)
-       ltr     %r5,%r5
-       stpt    __VQ_IDLE_ENTER(%r3)
-       jz      psw_idle_lpsw
-       spt     0(%r1)
+       STCK    __CLOCK_IDLE_ENTER(%r2)
+       stpt    __TIMER_IDLE_ENTER(%r2)
 psw_idle_lpsw:
        lpswe   __SF_EMPTY(%r15)
        br      %r14
@@ -750,15 +746,17 @@ ENTRY(restart_int_handler)
        mvc     __PT_PSW(16,%r15),__LC_RST_OLD_PSW # store restart old psw
        aghi    %r15,-STACK_FRAME_OVERHEAD      # create stack frame on stack
        xc      0(STACK_FRAME_OVERHEAD,%r15),0(%r15)
-       lmg     %r1,%r3,__LC_RESTART_FN         # load fn, parm & source cpu
+       lg      %r1,__LC_RESTART_FN             # load fn, parm & source cpu
+       lg      %r2,__LC_RESTART_DATA
+       lg      %r3,__LC_RESTART_SOURCE
        ltgr    %r3,%r3                         # test source cpu address
        jm      1f                              # negative -> skip source stop
-0:     sigp    %r4,%r3,1                       # sigp sense to source cpu
+0:     sigp    %r4,%r3,SIGP_SENSE              # sigp sense to source cpu
        brc     10,0b                           # wait for status stored
 1:     basr    %r14,%r1                        # call function
        stap    __SF_EMPTY(%r15)                # store cpu address
        llgh    %r3,__SF_EMPTY(%r15)
-2:     sigp    %r4,%r3,5                       # sigp stop to current cpu
+2:     sigp    %r4,%r3,SIGP_STOP               # sigp stop to current cpu
        brc     2,2b
 3:     j       3b
 
@@ -916,33 +914,28 @@ cleanup_io_restore_insn:
 
 cleanup_idle:
        # copy interrupt clock & cpu timer
-       mvc     __IDLE_EXIT(8,%r2),__LC_INT_CLOCK
-       mvc     __VQ_IDLE_EXIT(8,%r3),__LC_ASYNC_ENTER_TIMER
+       mvc     __CLOCK_IDLE_EXIT(8,%r2),__LC_INT_CLOCK
+       mvc     __TIMER_IDLE_EXIT(8,%r2),__LC_ASYNC_ENTER_TIMER
        cghi    %r11,__LC_SAVE_AREA_ASYNC
        je      0f
-       mvc     __IDLE_EXIT(8,%r2),__LC_MCCK_CLOCK
-       mvc     __VQ_IDLE_EXIT(8,%r3),__LC_MCCK_ENTER_TIMER
+       mvc     __CLOCK_IDLE_EXIT(8,%r2),__LC_MCCK_CLOCK
+       mvc     __TIMER_IDLE_EXIT(8,%r2),__LC_MCCK_ENTER_TIMER
 0:     # check if stck & stpt have been executed
        clg     %r9,BASED(cleanup_idle_insn)
        jhe     1f
-       mvc     __IDLE_ENTER(8,%r2),__IDLE_EXIT(%r2)
-       mvc     __VQ_IDLE_ENTER(8,%r3),__VQ_IDLE_EXIT(%r3)
-       j       2f
-1:     # check if the cpu timer has been reprogrammed
-       ltr     %r5,%r5
-       jz      2f
-       spt     __VQ_IDLE_ENTER(%r3)
-2:     # account system time going idle
+       mvc     __CLOCK_IDLE_ENTER(8,%r2),__CLOCK_IDLE_EXIT(%r2)
+       mvc     __TIMER_IDLE_ENTER(8,%r2),__TIMER_IDLE_EXIT(%r2)
+1:     # account system time going idle
        lg      %r9,__LC_STEAL_TIMER
-       alg     %r9,__IDLE_ENTER(%r2)
+       alg     %r9,__CLOCK_IDLE_ENTER(%r2)
        slg     %r9,__LC_LAST_UPDATE_CLOCK
        stg     %r9,__LC_STEAL_TIMER
-       mvc     __LC_LAST_UPDATE_CLOCK(8),__IDLE_EXIT(%r2)
+       mvc     __LC_LAST_UPDATE_CLOCK(8),__CLOCK_IDLE_EXIT(%r2)
        lg      %r9,__LC_SYSTEM_TIMER
        alg     %r9,__LC_LAST_UPDATE_TIMER
-       slg     %r9,__VQ_IDLE_ENTER(%r3)
+       slg     %r9,__TIMER_IDLE_ENTER(%r2)
        stg     %r9,__LC_SYSTEM_TIMER
-       mvc     __LC_LAST_UPDATE_TIMER(8),__VQ_IDLE_EXIT(%r3)
+       mvc     __LC_LAST_UPDATE_TIMER(8),__TIMER_IDLE_EXIT(%r2)
        # prepare return psw
        nihh    %r8,0xfffd              # clear wait state bit
        lg      %r9,48(%r11)            # return from psw_idle
@@ -958,8 +951,6 @@ cleanup_idle_insn:
        .quad   __critical_start
 .Lcritical_length:
        .quad   __critical_end - __critical_start
-.Lvtimer_max:
-       .quad   0x7fffffffffffffff
 
 
 #if defined(CONFIG_KVM) || defined(CONFIG_KVM_MODULE)
@@ -974,7 +965,6 @@ ENTRY(sie64a)
        stg     %r3,__SF_EMPTY+8(%r15)          # save guest register save area
        xc      __SF_EMPTY+16(8,%r15),__SF_EMPTY+16(%r15) # host id == 0
        lmg     %r0,%r13,0(%r3)                 # load guest gprs 0-13
-       lg      %r14,__LC_THREAD_INFO           # pointer thread_info struct
 sie_loop:
        lg      %r14,__LC_THREAD_INFO           # pointer thread_info struct
        tm      __TI_flags+7(%r14),_TIF_EXIT_SIE
index 4939d15375aac4702d8afc384391528b26c10bb8..805b6686b641dacf24afd15e4e34ee61d42cac8b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright IBM Corp. 1999,2010
+ * Copyright IBM Corp. 1999, 2010
  *
  *    Author(s): Hartmut Penner <hp@de.ibm.com>
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
index d3f1ab7d90ada12d5a7a4a59bc98bcfa245c3c71..a1372ae24ae111229cc532a1f638abfc9f0b75f8 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * arch/s390/kernel/head31.S
- *
- * Copyright (C) IBM Corp. 2005,2010
+ * Copyright IBM Corp. 2005, 2010
  *
  *   Author(s):        Hartmut Penner <hp@de.ibm.com>
  *             Martin Schwidefsky <schwidefsky@de.ibm.com>
index 99348c0eaa4105a8e8e000be3182911da58b61a7..c108af28bbe890b95ec606300b1129e893071b87 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * arch/s390/kernel/head64.S
- *
- * Copyright (C) IBM Corp. 1999,2010
+ * Copyright IBM Corp. 1999, 2010
  *
  *   Author(s):        Hartmut Penner <hp@de.ibm.com>
  *             Martin Schwidefsky <schwidefsky@de.ibm.com>
index 796c976b5fdc1b49a6d82e5a9a7cf19906a9443c..acaaaf4b7055e2d50122f43e6f695771a6f781cd 100644 (file)
@@ -5,6 +5,8 @@
  * Author(s): Michael Holzheu <holzheu@linux.vnet.ibm.com>
  */
 
+#include <asm/sigp.h>
+
 #define DATAMOVER_ADDR 0x4000
 #define COPY_PAGE_ADDR 0x6000
 
@@ -19,7 +21,7 @@
 .align 2
 .Lep_startup_kdump:
        lhi     %r1,2                           # mode 2 = esame (dump)
-       sigp    %r1,%r0,0x12                    # Switch to esame mode
+       sigp    %r1,%r0,SIGP_SET_ARCHITECTURE   # Switch to esame mode
        sam64                                   # Switch to 64 bit addressing
        basr    %r13,0
 .Lbase:
@@ -88,7 +90,7 @@ startup_kdump_relocated:
        sam31                                   # Switch to 31 bit addr mode
        sr      %r1,%r1                         # Erase register r1
        sr      %r2,%r2                         # Erase register r2
-       sigp    %r1,%r2,0x12                    # Switch to 31 bit arch mode
+       sigp    %r1,%r2,SIGP_SET_ARCHITECTURE   # Switch to 31 bit arch mode
        lpsw    0                               # Start new kernel...
 .align 8
 .Lrestart_psw:
index 2f6cfd460cb6ad5a04fd033ea7f515b49ba3e487..e64d141555ce99843f4995827f4644e1dc127c79 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  arch/s390/kernel/ipl.c
  *    ipl/reipl/dump support for Linux on s390.
  *
- *    Copyright IBM Corp. 2005,2012
+ *    Copyright IBM Corp. 2005, 2012
  *    Author(s): Michael Holzheu <holzheu@de.ibm.com>
  *              Heiko Carstens <heiko.carstens@de.ibm.com>
  *              Volker Sameske <sameske@de.ibm.com>
@@ -1528,15 +1527,12 @@ static struct shutdown_action __refdata dump_action = {
 
 static void dump_reipl_run(struct shutdown_trigger *trigger)
 {
-       struct {
-               void    *addr;
-               __u32   csum;
-       } __packed ipib;
+       unsigned long ipib = (unsigned long) reipl_block_actual;
+       unsigned int csum;
 
-       ipib.csum = csum_partial(reipl_block_actual,
-                                reipl_block_actual->hdr.len, 0);
-       ipib.addr = reipl_block_actual;
-       memcpy_absolute(&S390_lowcore.ipib, &ipib, sizeof(ipib));
+       csum = csum_partial(reipl_block_actual, reipl_block_actual->hdr.len, 0);
+       mem_assign_absolute(S390_lowcore.ipib, ipib);
+       mem_assign_absolute(S390_lowcore.ipib_checksum, csum);
        dump_run(trigger);
 }
 
index b4f4a7133fa10e3456b82f7f27fc8fbf70d942ed..dd7630d8aab7ce11ca405fb0c6da17f51b4998d6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *    Copyright IBM Corp. 2004,2011
+ *    Copyright IBM Corp. 2004, 2011
  *    Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *              Holger Smolinski <Holger.Smolinski@de.ibm.com>,
  *              Thomas Spatzier <tspat@de.ibm.com>,
index 64b761aef004a29a33eec80f49cd26fc5ec7c7ec..8aa634f5944b4be9f4f6a1d810de9a2d65e26f7b 100644 (file)
@@ -15,7 +15,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  *
- * Copyright (C) IBM Corporation, 2002, 2006
+ * Copyright IBM Corp. 2002, 2006
  *
  * s390 port, used ppc64 as template. Mike Grundy <grundym@us.ibm.com>
  */
index 87f080b17af103f1aa6d2977c9a7266ae87d3ed8..eca94e74d19aa77dfe437a753b4951fd50dd0da3 100644 (file)
@@ -45,7 +45,7 @@ struct lgr_info {
 /*
  * LGR globals
  */
-static void *lgr_page;
+static char lgr_page[PAGE_SIZE] __aligned(PAGE_SIZE);
 static struct lgr_info lgr_info_last;
 static struct lgr_info lgr_info_cur;
 static struct debug_info *lgr_dbf;
@@ -74,7 +74,7 @@ static void cpascii(char *dst, char *src, int size)
  */
 static void lgr_stsi_1_1_1(struct lgr_info *lgr_info)
 {
-       struct sysinfo_1_1_1 *si = lgr_page;
+       struct sysinfo_1_1_1 *si = (void *) lgr_page;
 
        if (stsi(si, 1, 1, 1) == -ENOSYS)
                return;
@@ -91,7 +91,7 @@ static void lgr_stsi_1_1_1(struct lgr_info *lgr_info)
  */
 static void lgr_stsi_2_2_2(struct lgr_info *lgr_info)
 {
-       struct sysinfo_2_2_2 *si = lgr_page;
+       struct sysinfo_2_2_2 *si = (void *) lgr_page;
 
        if (stsi(si, 2, 2, 2) == -ENOSYS)
                return;
@@ -105,7 +105,7 @@ static void lgr_stsi_2_2_2(struct lgr_info *lgr_info)
  */
 static void lgr_stsi_3_2_2(struct lgr_info *lgr_info)
 {
-       struct sysinfo_3_2_2 *si = lgr_page;
+       struct sysinfo_3_2_2 *si = (void *) lgr_page;
        int i;
 
        if (stsi(si, 3, 2, 2) == -ENOSYS)
@@ -183,14 +183,9 @@ static void lgr_timer_set(void)
  */
 static int __init lgr_init(void)
 {
-       lgr_page = (void *) __get_free_pages(GFP_KERNEL, 0);
-       if (!lgr_page)
-               return -ENOMEM;
        lgr_dbf = debug_register("lgr", 1, 1, sizeof(struct lgr_info));
-       if (!lgr_dbf) {
-               free_page((unsigned long) lgr_page);
+       if (!lgr_dbf)
                return -ENOMEM;
-       }
        debug_register_view(lgr_dbf, &debug_hex_ascii_view);
        lgr_info_get(&lgr_info_last);
        debug_event(lgr_dbf, 1, &lgr_info_last, sizeof(lgr_info_last));
index cdacf8f91b2d11b7cb3acd683f7a8db830c6fb05..493304bdf1c7845c34c632b33361b6468126c7a6 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * arch/s390/kernel/machine_kexec.c
- *
- * Copyright IBM Corp. 2005,2011
+ * Copyright IBM Corp. 2005, 2011
  *
  * Author(s): Rolf Adelsberger,
  *           Heiko Carstens <heiko.carstens@de.ibm.com>
index 7e2c38ba13732317062f9b1f226adec6ef986f6e..4567ce20d900c128a23d27a6b8668b72d921149f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright IBM Corp. 2008,2009
+ * Copyright IBM Corp. 2008, 2009
  *
  *   Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>,
  *
index f70cadec68fccbcc12e60776aaa092fdc6239a05..11332193db30552a7d028de8debf6af8e019531b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright IBM Corp. 2008,2009
+ * Copyright IBM Corp. 2008, 2009
  *
  *   Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>,
  *
index dfcb3436bad069d9dd75290d54c868b92a2d6beb..46412b1d7e1e868243a083faa1a066e17f081c13 100644 (file)
@@ -1,9 +1,8 @@
 /*
- *  arch/s390/kernel/module.c - Kernel module help for s390.
+ *  Kernel module help for s390.
  *
  *  S390 version
- *    Copyright (C) 2002, 2003 IBM Deutschland Entwicklung GmbH,
- *                            IBM Corporation
+ *    Copyright IBM Corp. 2002, 2003
  *    Author(s): Arnd Bergmann (arndb@de.ibm.com)
  *              Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
index 8c372ca613500d93c23daaea586efb9ca585f764..a6daa5c5cdb047708be93a173e47095af9d0f9f4 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *   Machine check handler
  *
- *    Copyright IBM Corp. 2000,2009
+ *    Copyright IBM Corp. 2000, 2009
  *    Author(s): Ingo Adlung <adlung@de.ibm.com>,
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *              Cornelia Huck <cornelia.huck@de.ibm.com>,
index 95fa5ac6c4cedbf6d287ca25708b906cb1f35c4c..46480d81df00029aa395f39861a7d40dd7f49bde 100644 (file)
@@ -60,7 +60,7 @@ void __init os_info_init(void)
        os_info.version_minor = OS_INFO_VERSION_MINOR;
        os_info.magic = OS_INFO_MAGIC;
        os_info.csum = os_info_csum(&os_info);
-       memcpy_absolute(&S390_lowcore.os_info, &ptr, sizeof(ptr));
+       mem_assign_absolute(S390_lowcore.os_info, (unsigned long) ptr);
 }
 
 #ifdef CONFIG_CRASH_DUMP
index 60055cefdd04da2db1d3af3061d80eb50f669e17..733175373a4c6e9a95c204f30f47214d81351f73 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file handles the architecture dependent parts of process handling.
  *
- *    Copyright IBM Corp. 1999,2009
+ *    Copyright IBM Corp. 1999, 2009
  *    Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *              Hartmut Penner <hp@de.ibm.com>,
  *              Denis Joseph Barrow,
@@ -25,8 +25,8 @@
 #include <linux/module.h>
 #include <asm/io.h>
 #include <asm/processor.h>
+#include <asm/vtimer.h>
 #include <asm/irq.h>
-#include <asm/timer.h>
 #include <asm/nmi.h>
 #include <asm/smp.h>
 #include <asm/switch_to.h>
index 6e0073e43f5448e8910fae02e973aecfdf1594f8..572d4c9cb33b0dd66641a45568700babe8916215 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  arch/s390/kernel/processor.c
- *
  *  Copyright IBM Corp. 2008
  *  Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
@@ -25,13 +23,15 @@ static DEFINE_PER_CPU(struct cpuid, cpu_id);
  */
 void __cpuinit cpu_init(void)
 {
-       struct cpuid *id = &per_cpu(cpu_id, smp_processor_id());
+       struct s390_idle_data *idle = &__get_cpu_var(s390_idle);
+       struct cpuid *id = &__get_cpu_var(cpu_id);
 
        get_cpu_id(id);
        atomic_inc(&init_mm.mm_count);
        current->active_mm = &init_mm;
        BUG_ON(current->mm);
        enter_lazy_tlb(&init_mm, current);
+       memset(idle, 0, sizeof(*idle));
 }
 
 /*
index 4993e689b2c2bd19135e873234d699c9a2da8f16..f4eb37680b9152b458938ff37b875754823be695 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Ptrace user space interface.
  *
- *    Copyright IBM Corp. 1999,2010
+ *    Copyright IBM Corp. 1999, 2010
  *    Author(s): Denis Joseph Barrow
  *               Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
index ad67c214be047df4c6ddb02f65b0b645de152258..dd8016b0477eae6117c8cae5917e8c59d1fe65d5 100644 (file)
@@ -1,13 +1,12 @@
 /*
- *  arch/s390/kernel/reipl.S
- *
  *  S390 version
- *    Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 2000
  *    Author(s): Holger Smolinski (Holger.Smolinski@de.ibm.com)
  */
 
 #include <linux/linkage.h>
 #include <asm/asm-offsets.h>
+#include <asm/sigp.h>
 
 #
 # store_status: Empty implementation until kdump is supported on 31 bit
@@ -60,7 +59,7 @@ ENTRY(do_reipl_asm)
                bas     %r14,.Ldisab-.Lpg0(%r13)
 .L003:         st      %r1,__LC_SUBCHANNEL_ID
                lpsw    0
-               sigp    0,0,0(6)
+               sigp    0,0,SIGP_RESTART
 .Ldisab:       st      %r14,.Ldispsw+4-.Lpg0(%r13)
                lpsw    .Ldispsw-.Lpg0(%r13)
                .align  8
index 36b32658fb241146d86d672fd498781b3180e441..dc3b1273c4dc766e752ee48ab69d41ca48b9c8a4 100644 (file)
@@ -1,11 +1,12 @@
 /*
- *    Copyright IBM Corp 2000,2011
+ *    Copyright IBM Corp 2000, 2011
  *    Author(s): Holger Smolinski <Holger.Smolinski@de.ibm.com>,
  *              Denis Joseph Barrow,
  */
 
 #include <linux/linkage.h>
 #include <asm/asm-offsets.h>
+#include <asm/sigp.h>
 
 #
 # store_status
@@ -106,7 +107,7 @@ ENTRY(do_reipl_asm)
 .L003:         st      %r1,__LC_SUBCHANNEL_ID
                lhi     %r1,0            # mode 0 = esa
                slr     %r0,%r0          # set cpuid to zero
-               sigp    %r1,%r0,0x12     # switch to esa mode
+               sigp    %r1,%r0,SIGP_SET_ARCHITECTURE # switch to esa mode
                lpsw    0
 .Ldisab:       sll     %r14,1
                srl     %r14,1           # need to kill hi bit to avoid specification exceptions.
index c91d70aede919e7af075df789f504d571d8c985c..f4e6f20e117a96e4ee37b47fa0ca0a371c0fa95e 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * arch/s390/kernel/relocate_kernel.S
- *
- * (C) Copyright IBM Corp. 2005
+ * Copyright IBM Corp. 2005
  *
  * Author(s): Rolf Adelsberger,
  *           Heiko Carstens <heiko.carstens@de.ibm.com>
@@ -9,6 +7,7 @@
  */
 
 #include <linux/linkage.h>
+#include <asm/sigp.h>
 
 /*
  * moves the new kernel to its destination...
@@ -93,7 +92,7 @@ ENTRY(relocate_kernel)
        .no_diag308:
                sr      %r1,%r1         # clear %r1
                sr      %r2,%r2         # clear %r2
-               sigp    %r1,%r2,0x12    # set cpuid to zero
+               sigp    %r1,%r2,SIGP_SET_ARCHITECTURE # set cpuid to zero
                lpsw    0               # hopefully start new kernel...
 
                .align  8
index 7c3ce589a7f0cdb3ceef2b08d24977b504f80a23..cfac28330b03f271726bf8b1d61ee74c7ceac5a7 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * arch/s390/kernel/relocate_kernel64.S
- *
- * (C) Copyright IBM Corp. 2005
+ * Copyright IBM Corp. 2005
  *
  * Author(s): Rolf Adelsberger,
  *           Heiko Carstens <heiko.carstens@de.ibm.com>
@@ -9,6 +7,7 @@
  */
 
 #include <linux/linkage.h>
+#include <asm/sigp.h>
 
 /*
  * moves the new kernel to its destination...
@@ -45,7 +44,7 @@ ENTRY(relocate_kernel)
                diag    %r0,%r0,0x308
        .back:
                lhi     %r1,1           # mode 1 = esame
-               sigp    %r1,%r0,0x12    # switch to esame mode
+               sigp    %r1,%r0,SIGP_SET_ARCHITECTURE # switch to esame mode
                sam64                   # switch to 64 bit addressing mode
                basr    %r13,0
        .back_base:
@@ -96,7 +95,7 @@ ENTRY(relocate_kernel)
                sam31                   # 31 bit mode
                sr      %r1,%r1         # erase register r1
                sr      %r2,%r2         # erase register r2
-               sigp    %r1,%r2,0x12    # set cpuid to zero
+               sigp    %r1,%r2,SIGP_SET_ARCHITECTURE # set cpuid to zero
                lpsw    0               # hopefully start new kernel...
 
                .align  8
index 95792d846bb6996d531afa16c88d769a1d0a115d..bf053898630de935aa4bcbd875c62a405169384c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Mini SCLP driver.
  *
- * Copyright IBM Corp. 2004,2009
+ * Copyright IBM Corp. 2004, 2009
  *
  *   Author(s):        Peter Oberparleiter <Peter.Oberparleiter@de.ibm.com>,
  *             Heiko Carstens <heiko.carstens@de.ibm.com>,
index 489d1d8d96b068f63b61886ee3c55d50f52b3913..34d75b50526c471380744c1cf99718c6130e6132 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  arch/s390/kernel/setup.c
- *
  *  S390 version
- *    Copyright (C) IBM Corp. 1999,2012
+ *    Copyright IBM Corp. 1999, 2012
  *    Author(s): Hartmut Penner (hp@de.ibm.com),
  *               Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
@@ -430,10 +428,11 @@ static void __init setup_lowcore(void)
        lc->restart_source = -1UL;
 
        /* Setup absolute zero lowcore */
-       memcpy_absolute(&S390_lowcore.restart_stack, &lc->restart_stack,
-                       4 * sizeof(unsigned long));
-       memcpy_absolute(&S390_lowcore.restart_psw, &lc->restart_psw,
-                       sizeof(lc->restart_psw));
+       mem_assign_absolute(S390_lowcore.restart_stack, lc->restart_stack);
+       mem_assign_absolute(S390_lowcore.restart_fn, lc->restart_fn);
+       mem_assign_absolute(S390_lowcore.restart_data, lc->restart_data);
+       mem_assign_absolute(S390_lowcore.restart_source, lc->restart_source);
+       mem_assign_absolute(S390_lowcore.restart_psw, lc->restart_psw);
 
        set_prefix((u32)(unsigned long) lc);
        lowcore_ptr[0] = lc;
@@ -598,9 +597,7 @@ static void __init setup_memory_end(void)
 static void __init setup_vmcoreinfo(void)
 {
 #ifdef CONFIG_KEXEC
-       unsigned long ptr = paddr_vmcoreinfo_note();
-
-       memcpy_absolute(&S390_lowcore.vmcore_info, &ptr, sizeof(ptr));
+       mem_assign_absolute(S390_lowcore.vmcore_info, paddr_vmcoreinfo_note());
 #endif
 }
 
index ac565b44aabbf76c23da00540f8f2884e06f07a6..c13a2a37ef007b2634a508b7053b0c3cc12e30b2 100644 (file)
@@ -1,7 +1,5 @@
 /*
- *  arch/s390/kernel/signal.c
- *
- *    Copyright (C) IBM Corp. 1999,2006
+ *    Copyright IBM Corp. 1999, 2006
  *    Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
  *
  *    Based on Intel version
index 8dca9c248ac793ea292ad4683e0057af5e9470d8..720fda1620f29119f56f437fafef8f04657cc893 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  SMP related functions
  *
- *    Copyright IBM Corp. 1999,2012
+ *    Copyright IBM Corp. 1999, 2012
  *    Author(s): Denis Joseph Barrow,
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *              Heiko Carstens <heiko.carstens@de.ibm.com>,
 #include <asm/setup.h>
 #include <asm/irq.h>
 #include <asm/tlbflush.h>
-#include <asm/timer.h>
+#include <asm/vtimer.h>
 #include <asm/lowcore.h>
 #include <asm/sclp.h>
 #include <asm/vdso.h>
 #include <asm/debug.h>
 #include <asm/os_info.h>
+#include <asm/sigp.h>
 #include "entry.h"
 
-enum {
-       sigp_sense = 1,
-       sigp_external_call = 2,
-       sigp_emergency_signal = 3,
-       sigp_start = 4,
-       sigp_stop = 5,
-       sigp_restart = 6,
-       sigp_stop_and_store_status = 9,
-       sigp_initial_cpu_reset = 11,
-       sigp_cpu_reset = 12,
-       sigp_set_prefix = 13,
-       sigp_store_status_at_address = 14,
-       sigp_store_extended_status_at_address = 15,
-       sigp_set_architecture = 18,
-       sigp_conditional_emergency_signal = 19,
-       sigp_sense_running = 21,
-};
-
-enum {
-       sigp_order_code_accepted = 0,
-       sigp_status_stored = 1,
-       sigp_busy = 2,
-       sigp_not_operational = 3,
-};
-
 enum {
        ec_schedule = 0,
        ec_call_function,
@@ -124,7 +100,7 @@ static inline int __pcpu_sigp_relax(u16 addr, u8 order, u32 parm, u32 *status)
 
        while (1) {
                cc = __pcpu_sigp(addr, order, parm, status);
-               if (cc != sigp_busy)
+               if (cc != SIGP_CC_BUSY)
                        return cc;
                cpu_relax();
        }
@@ -136,7 +112,7 @@ static int pcpu_sigp_retry(struct pcpu *pcpu, u8 order, u32 parm)
 
        for (retry = 0; ; retry++) {
                cc = __pcpu_sigp(pcpu->address, order, parm, &pcpu->status);
-               if (cc != sigp_busy)
+               if (cc != SIGP_CC_BUSY)
                        break;
                if (retry >= 3)
                        udelay(10);
@@ -146,20 +122,19 @@ static int pcpu_sigp_retry(struct pcpu *pcpu, u8 order, u32 parm)
 
 static inline int pcpu_stopped(struct pcpu *pcpu)
 {
-       if (__pcpu_sigp(pcpu->address, sigp_sense,
-                       0, &pcpu->status) != sigp_status_stored)
+       if (__pcpu_sigp(pcpu->address, SIGP_SENSE,
+                       0, &pcpu->status) != SIGP_CC_STATUS_STORED)
                return 0;
-       /* Check for stopped and check stop state */
-       return !!(pcpu->status & 0x50);
+       return !!(pcpu->status & (SIGP_STATUS_CHECK_STOP|SIGP_STATUS_STOPPED));
 }
 
 static inline int pcpu_running(struct pcpu *pcpu)
 {
-       if (__pcpu_sigp(pcpu->address, sigp_sense_running,
-                       0, &pcpu->status) != sigp_status_stored)
+       if (__pcpu_sigp(pcpu->address, SIGP_SENSE_RUNNING,
+                       0, &pcpu->status) != SIGP_CC_STATUS_STORED)
                return 1;
-       /* Check for running status */
-       return !(pcpu->status & 0x400);
+       /* Status stored condition code is equivalent to cpu not running. */
+       return 0;
 }
 
 /*
@@ -181,7 +156,7 @@ static void pcpu_ec_call(struct pcpu *pcpu, int ec_bit)
 
        set_bit(ec_bit, &pcpu->ec_mask);
        order = pcpu_running(pcpu) ?
-               sigp_external_call : sigp_emergency_signal;
+               SIGP_EXTERNAL_CALL : SIGP_EMERGENCY_SIGNAL;
        pcpu_sigp_retry(pcpu, order, 0);
 }
 
@@ -214,7 +189,7 @@ static int __cpuinit pcpu_alloc_lowcore(struct pcpu *pcpu, int cpu)
                goto out;
 #endif
        lowcore_ptr[cpu] = lc;
-       pcpu_sigp_retry(pcpu, sigp_set_prefix, (u32)(unsigned long) lc);
+       pcpu_sigp_retry(pcpu, SIGP_SET_PREFIX, (u32)(unsigned long) lc);
        return 0;
 out:
        if (pcpu != &pcpu_devices[0]) {
@@ -229,7 +204,7 @@ out:
 
 static void pcpu_free_lowcore(struct pcpu *pcpu)
 {
-       pcpu_sigp_retry(pcpu, sigp_set_prefix, 0);
+       pcpu_sigp_retry(pcpu, SIGP_SET_PREFIX, 0);
        lowcore_ptr[pcpu - pcpu_devices] = NULL;
 #ifndef CONFIG_64BIT
        if (MACHINE_HAS_IEEE) {
@@ -288,7 +263,7 @@ static void pcpu_start_fn(struct pcpu *pcpu, void (*func)(void *), void *data)
        lc->restart_fn = (unsigned long) func;
        lc->restart_data = (unsigned long) data;
        lc->restart_source = -1UL;
-       pcpu_sigp_retry(pcpu, sigp_restart, 0);
+       pcpu_sigp_retry(pcpu, SIGP_RESTART, 0);
 }
 
 /*
@@ -298,26 +273,26 @@ static void pcpu_delegate(struct pcpu *pcpu, void (*func)(void *),
                          void *data, unsigned long stack)
 {
        struct _lowcore *lc = lowcore_ptr[pcpu - pcpu_devices];
-       struct {
-               unsigned long   stack;
-               void            *func;
-               void            *data;
-               unsigned long   source;
-       } restart = { stack, func, data, stap() };
+       unsigned long source_cpu = stap();
 
        __load_psw_mask(psw_kernel_bits);
-       if (pcpu->address == restart.source)
+       if (pcpu->address == source_cpu)
                func(data);     /* should not return */
        /* Stop target cpu (if func returns this stops the current cpu). */
-       pcpu_sigp_retry(pcpu, sigp_stop, 0);
+       pcpu_sigp_retry(pcpu, SIGP_STOP, 0);
        /* Restart func on the target cpu and stop the current cpu. */
-       memcpy_absolute(&lc->restart_stack, &restart, sizeof(restart));
+       mem_assign_absolute(lc->restart_stack, stack);
+       mem_assign_absolute(lc->restart_fn, (unsigned long) func);
+       mem_assign_absolute(lc->restart_data, (unsigned long) data);
+       mem_assign_absolute(lc->restart_source, source_cpu);
        asm volatile(
-               "0:     sigp    0,%0, # sigp restart to target cpu\n"
+               "0:     sigp    0,%0,%2 # sigp restart to target cpu\n"
                "       brc     2,0b    # busy, try again\n"
-               "1:     sigp    0,%1, # sigp stop to current cpu\n"
+               "1:     sigp    0,%1,%3 # sigp stop to current cpu\n"
                "       brc     2,1b    # busy, try again\n"
-               : : "d" (pcpu->address), "d" (restart.source) : "0", "1", "cc");
+               : : "d" (pcpu->address), "d" (source_cpu),
+                   "K" (SIGP_RESTART), "K" (SIGP_STOP)
+               : "0", "1", "cc");
        for (;;) ;
 }
 
@@ -388,8 +363,8 @@ void smp_emergency_stop(cpumask_t *cpumask)
        for_each_cpu(cpu, cpumask) {
                struct pcpu *pcpu = pcpu_devices + cpu;
                set_bit(ec_stop_cpu, &pcpu->ec_mask);
-               while (__pcpu_sigp(pcpu->address, sigp_emergency_signal,
-                                  0, NULL) == sigp_busy &&
+               while (__pcpu_sigp(pcpu->address, SIGP_EMERGENCY_SIGNAL,
+                                  0, NULL) == SIGP_CC_BUSY &&
                       get_clock() < end)
                        cpu_relax();
        }
@@ -425,7 +400,7 @@ void smp_send_stop(void)
        /* stop all processors */
        for_each_cpu(cpu, &cpumask) {
                struct pcpu *pcpu = pcpu_devices + cpu;
-               pcpu_sigp_retry(pcpu, sigp_stop, 0);
+               pcpu_sigp_retry(pcpu, SIGP_STOP, 0);
                while (!pcpu_stopped(pcpu))
                        cpu_relax();
        }
@@ -436,7 +411,7 @@ void smp_send_stop(void)
  */
 void smp_stop_cpu(void)
 {
-       pcpu_sigp_retry(pcpu_devices + smp_processor_id(), sigp_stop, 0);
+       pcpu_sigp_retry(pcpu_devices + smp_processor_id(), SIGP_STOP, 0);
        for (;;) ;
 }
 
@@ -590,7 +565,7 @@ static void __init smp_get_save_area(int cpu, u16 address)
        }
 #endif
        /* Get the registers of a non-boot cpu. */
-       __pcpu_sigp_relax(address, sigp_stop_and_store_status, 0, NULL);
+       __pcpu_sigp_relax(address, SIGP_STOP_AND_STORE_STATUS, 0, NULL);
        memcpy_real(save_area, lc + SAVE_AREA_BASE, sizeof(*save_area));
 }
 
@@ -599,8 +574,8 @@ int smp_store_status(int cpu)
        struct pcpu *pcpu;
 
        pcpu = pcpu_devices + cpu;
-       if (__pcpu_sigp_relax(pcpu->address, sigp_stop_and_store_status,
-                             0, NULL) != sigp_order_code_accepted)
+       if (__pcpu_sigp_relax(pcpu->address, SIGP_STOP_AND_STORE_STATUS,
+                             0, NULL) != SIGP_CC_ORDER_CODE_ACCEPTED)
                return -EIO;
        return 0;
 }
@@ -621,8 +596,8 @@ static struct sclp_cpu_info *smp_get_cpu_info(void)
        if (info && (use_sigp_detection || sclp_get_cpu_info(info))) {
                use_sigp_detection = 1;
                for (address = 0; address <= MAX_CPU_ADDRESS; address++) {
-                       if (__pcpu_sigp_relax(address, sigp_sense, 0, NULL) ==
-                           sigp_not_operational)
+                       if (__pcpu_sigp_relax(address, SIGP_SENSE, 0, NULL) ==
+                           SIGP_CC_NOT_OPERATIONAL)
                                continue;
                        info->cpu[info->configured].address = address;
                        info->configured++;
@@ -732,8 +707,8 @@ int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
        pcpu = pcpu_devices + cpu;
        if (pcpu->state != CPU_STATE_CONFIGURED)
                return -EIO;
-       if (pcpu_sigp_retry(pcpu, sigp_initial_cpu_reset, 0) !=
-           sigp_order_code_accepted)
+       if (pcpu_sigp_retry(pcpu, SIGP_INITIAL_CPU_RESET, 0) !=
+           SIGP_CC_ORDER_CODE_ACCEPTED)
                return -EIO;
 
        rc = pcpu_alloc_lowcore(pcpu, cpu);
@@ -793,7 +768,7 @@ void __cpu_die(unsigned int cpu)
 void __noreturn cpu_die(void)
 {
        idle_task_exit();
-       pcpu_sigp_retry(pcpu_devices + smp_processor_id(), sigp_stop, 0);
+       pcpu_sigp_retry(pcpu_devices + smp_processor_id(), SIGP_STOP, 0);
        for (;;) ;
 }
 
@@ -940,7 +915,7 @@ static ssize_t show_idle_count(struct device *dev,
        do {
                sequence = ACCESS_ONCE(idle->sequence);
                idle_count = ACCESS_ONCE(idle->idle_count);
-               if (ACCESS_ONCE(idle->idle_enter))
+               if (ACCESS_ONCE(idle->clock_idle_enter))
                        idle_count++;
        } while ((sequence & 1) || (idle->sequence != sequence));
        return sprintf(buf, "%llu\n", idle_count);
@@ -958,8 +933,8 @@ static ssize_t show_idle_time(struct device *dev,
                now = get_clock();
                sequence = ACCESS_ONCE(idle->sequence);
                idle_time = ACCESS_ONCE(idle->idle_time);
-               idle_enter = ACCESS_ONCE(idle->idle_enter);
-               idle_exit = ACCESS_ONCE(idle->idle_exit);
+               idle_enter = ACCESS_ONCE(idle->clock_idle_enter);
+               idle_exit = ACCESS_ONCE(idle->clock_idle_exit);
        } while ((sequence & 1) || (idle->sequence != sequence));
        idle_time += idle_enter ? ((idle_exit ? : now) - idle_enter) : 0;
        return sprintf(buf, "%llu\n", idle_time >> 12);
@@ -982,14 +957,11 @@ static int __cpuinit smp_cpu_notify(struct notifier_block *self,
        unsigned int cpu = (unsigned int)(long)hcpu;
        struct cpu *c = &pcpu_devices[cpu].cpu;
        struct device *s = &c->dev;
-       struct s390_idle_data *idle;
        int err = 0;
 
        switch (action) {
        case CPU_ONLINE:
        case CPU_ONLINE_FROZEN:
-               idle = &per_cpu(s390_idle, cpu);
-               memset(idle, 0, sizeof(struct s390_idle_data));
                err = sysfs_create_group(&s->kobj, &cpu_online_attr_group);
                break;
        case CPU_DEAD:
index 8841919ef7e64b9417f8fc8934403970a47644f8..1785cd82253caec869abbb7f5d7804b42effad04 100644 (file)
@@ -1,9 +1,7 @@
 /*
- * arch/s390/kernel/stacktrace.c
- *
  * Stack trace management functions
  *
- *  Copyright (C) IBM Corp. 2006
+ *  Copyright IBM Corp. 2006
  *  Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
  */
 
index dd70ef046058b22c2dc35a959a0793eaafb4b23b..d4ca4e0617b52ae12e039a6110ef4872f9de07ee 100644 (file)
@@ -12,6 +12,7 @@
 #include <asm/ptrace.h>
 #include <asm/thread_info.h>
 #include <asm/asm-offsets.h>
+#include <asm/sigp.h>
 
 /*
  * Save register context in absolute 0 lowcore and call swsusp_save() to
@@ -163,7 +164,7 @@ ENTRY(swsusp_arch_resume)
        diag    %r0,%r0,0x308
 restart_entry:
        lhi     %r1,1
-       sigp    %r1,%r0,0x12
+       sigp    %r1,%r0,SIGP_SET_ARCHITECTURE
        sam64
        larl    %r1,.Lnew_pgm_check_psw
        lpswe   0(%r1)
@@ -179,7 +180,7 @@ pgm_check_entry:
        larl    %r4,.Lrestart_suspend_psw       /* Set new restart PSW */
        mvc     __LC_RST_NEW_PSW(16,%r0),0(%r4)
 3:
-       sigp    %r9,%r1,11                      /* sigp initial cpu reset */
+       sigp    %r9,%r1,SIGP_INITIAL_CPU_RESET  /* sigp initial cpu reset */
        brc     8,4f                            /* accepted */
        brc     2,3b                            /* busy, try again */
 
@@ -190,16 +191,16 @@ pgm_check_entry:
        larl    %r3,_sclp_print_early
        lghi    %r1,0
        sam31
-       sigp    %r1,%r0,0x12
+       sigp    %r1,%r0,SIGP_SET_ARCHITECTURE
        basr    %r14,%r3
        larl    %r3,.Ldisabled_wait_31
        lpsw    0(%r3)
 4:
        /* Switch to suspend CPU */
-       sigp    %r9,%r1,6               /* sigp restart to suspend CPU */
+       sigp    %r9,%r1,SIGP_RESTART    /* sigp restart to suspend CPU */
        brc     2,4b                    /* busy, try again */
 5:
-       sigp    %r9,%r2,5               /* sigp stop to current resume CPU */
+       sigp    %r9,%r2,SIGP_STOP       /* sigp stop to current resume CPU */
        brc     2,5b                    /* busy, try again */
 6:     j       6b
 
@@ -207,7 +208,7 @@ restart_suspend:
        larl    %r1,.Lresume_cpu
        llgh    %r2,0(%r1)
 7:
-       sigp    %r9,%r2,1               /* sigp sense, wait for resume CPU */
+       sigp    %r9,%r2,SIGP_SENSE      /* sigp sense, wait for resume CPU */
        brc     8,7b                    /* accepted, status 0, still running */
        brc     2,7b                    /* busy, try again */
        tmll    %r9,0x40                /* Test if resume CPU is stopped */
index 78ea1948ff514f4e20df0686f38308427644fe21..b4a29eee41b8d59a7542ce040019a62b0e5f4be8 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  arch/s390/kernel/sys_s390.c
- *
  *  S390 version
- *    Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999, 2000
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  *               Thomas Spatzier (tspat@de.ibm.com)
  *
index d4e1cb1dbcd1a409af059d413bcef525f84cce52..dcec960fc724486aed8e5c742f60372fa645a855 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  arch/s390/kernel/time.c
  *    Time of day based timer functions.
  *
  *  S390 version
@@ -45,7 +44,7 @@
 #include <asm/vdso.h>
 #include <asm/irq.h>
 #include <asm/irq_regs.h>
-#include <asm/timer.h>
+#include <asm/vtimer.h>
 #include <asm/etr.h>
 #include <asm/cio.h>
 #include "entry.h"
index 4f8dc942257c378bba5a940f41cc8e6c270861c0..05151e06c38808e8fb7e70acf487aaae6c031e93 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *    Copyright IBM Corp. 2007,2011
+ *    Copyright IBM Corp. 2007, 2011
  *    Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
  */
 
index 77cdf4234ebc8bd7e62bf0c2893147953e4dc9dd..af2421a0f3156e9c8a965ee34d95322de55602be 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  arch/s390/kernel/traps.c
- *
  *  S390 version
- *    Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999, 2000
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  *               Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com),
  *
index 39ebff506946ef158d97604da5c87d41e312d81c..4fc97b40a6e1a3fe48a9ca108cf0227e1fa637b9 100644 (file)
@@ -1,71 +1,82 @@
 /*
- *  arch/s390/kernel/vtime.c
  *    Virtual cpu timer based timer functions.
  *
- *  S390 version
- *    Copyright (C) 2004 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 2004, 2012
  *    Author(s): Jan Glauber <jan.glauber@de.ibm.com>
  */
 
-#include <linux/module.h>
+#include <linux/kernel_stat.h>
+#include <linux/notifier.h>
+#include <linux/kprobes.h>
+#include <linux/export.h>
 #include <linux/kernel.h>
-#include <linux/time.h>
-#include <linux/delay.h>
-#include <linux/init.h>
-#include <linux/smp.h>
-#include <linux/types.h>
 #include <linux/timex.h>
-#include <linux/notifier.h>
-#include <linux/kernel_stat.h>
-#include <linux/rcupdate.h>
-#include <linux/posix-timers.h>
+#include <linux/types.h>
+#include <linux/time.h>
 #include <linux/cpu.h>
-#include <linux/kprobes.h>
+#include <linux/smp.h>
 
-#include <asm/timer.h>
 #include <asm/irq_regs.h>
 #include <asm/cputime.h>
+#include <asm/vtimer.h>
 #include <asm/irq.h>
 #include "entry.h"
 
-static DEFINE_PER_CPU(struct vtimer_queue, virt_cpu_timer);
+static void virt_timer_expire(void);
 
 DEFINE_PER_CPU(struct s390_idle_data, s390_idle);
 
-static inline __u64 get_vtimer(void)
+static LIST_HEAD(virt_timer_list);
+static DEFINE_SPINLOCK(virt_timer_lock);
+static atomic64_t virt_timer_current;
+static atomic64_t virt_timer_elapsed;
+
+static inline u64 get_vtimer(void)
 {
-       __u64 timer;
+       u64 timer;
 
-       asm volatile("STPT %0" : "=m" (timer));
+       asm volatile("stpt %0" : "=m" (timer));
        return timer;
 }
 
-static inline void set_vtimer(__u64 expires)
+static inline void set_vtimer(u64 expires)
 {
-       __u64 timer;
+       u64 timer;
 
-       asm volatile ("  STPT %0\n"  /* Store current cpu timer value */
-                     "  SPT %1"     /* Set new value immediately afterwards */
-                     : "=m" (timer) : "m" (expires) );
+       asm volatile(
+               "       stpt    %0\n"   /* Store current cpu timer value */
+               "       spt     %1"     /* Set new value imm. afterwards */
+               : "=m" (timer) : "m" (expires));
        S390_lowcore.system_timer += S390_lowcore.last_update_timer - timer;
        S390_lowcore.last_update_timer = expires;
 }
 
+static inline int virt_timer_forward(u64 elapsed)
+{
+       BUG_ON(!irqs_disabled());
+
+       if (list_empty(&virt_timer_list))
+               return 0;
+       elapsed = atomic64_add_return(elapsed, &virt_timer_elapsed);
+       return elapsed >= atomic64_read(&virt_timer_current);
+}
+
 /*
  * Update process times based on virtual cpu times stored by entry.S
  * to the lowcore fields user_timer, system_timer & steal_clock.
  */
-static void do_account_vtime(struct task_struct *tsk, int hardirq_offset)
+static int do_account_vtime(struct task_struct *tsk, int hardirq_offset)
 {
        struct thread_info *ti = task_thread_info(tsk);
-       __u64 timer, clock, user, system, steal;
+       u64 timer, clock, user, system, steal;
 
        timer = S390_lowcore.last_update_timer;
        clock = S390_lowcore.last_update_clock;
-       asm volatile ("  STPT %0\n"    /* Store current cpu timer value */
-                     "  STCK %1"      /* Store current tod clock value */
-                     : "=m" (S390_lowcore.last_update_timer),
-                       "=m" (S390_lowcore.last_update_clock) );
+       asm volatile(
+               "       stpt    %0\n"   /* Store current cpu timer value */
+               "       stck    %1"     /* Store current tod clock value */
+               : "=m" (S390_lowcore.last_update_timer),
+                 "=m" (S390_lowcore.last_update_clock));
        S390_lowcore.system_timer += timer - S390_lowcore.last_update_timer;
        S390_lowcore.steal_timer += S390_lowcore.last_update_clock - clock;
 
@@ -84,6 +95,8 @@ static void do_account_vtime(struct task_struct *tsk, int hardirq_offset)
                S390_lowcore.steal_timer = 0;
                account_steal_time(steal);
        }
+
+       return virt_timer_forward(user + system);
 }
 
 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)
 
 void account_process_tick(struct task_struct *tsk, int user_tick)
 {
-       do_account_vtime(tsk, HARDIRQ_OFFSET);
+       if (do_account_vtime(tsk, HARDIRQ_OFFSET))
+               virt_timer_expire();
 }
 
 /*
@@ -111,7 +125,7 @@ void account_process_tick(struct task_struct *tsk, int user_tick)
 void account_system_vtime(struct task_struct *tsk)
 {
        struct thread_info *ti = task_thread_info(tsk);
-       __u64 timer, system;
+       u64 timer, system;
 
        timer = S390_lowcore.last_update_timer;
        S390_lowcore.last_update_timer = get_vtimer();
@@ -121,13 +135,14 @@ void account_system_vtime(struct task_struct *tsk)
        S390_lowcore.steal_timer -= system;
        ti->system_timer = S390_lowcore.system_timer;
        account_system_time(tsk, 0, system, system);
+
+       virt_timer_forward(system);
 }
 EXPORT_SYMBOL_GPL(account_system_vtime);
 
 void __kprobes vtime_stop_cpu(void)
 {
        struct s390_idle_data *idle = &__get_cpu_var(s390_idle);
-       struct vtimer_queue *vq = &__get_cpu_var(virt_cpu_timer);
        unsigned long long idle_time;
        unsigned long psw_mask;
 
@@ -141,7 +156,7 @@ void __kprobes vtime_stop_cpu(void)
        idle->nohz_delay = 0;
 
        /* Call the assembler magic in entry.S */
-       psw_idle(idle, vq, psw_mask, !list_empty(&vq->list));
+       psw_idle(idle, psw_mask);
 
        /* Reenable preemption tracer. */
        start_critical_timings();
@@ -149,9 +164,9 @@ void __kprobes vtime_stop_cpu(void)
        /* Account time spent with enabled wait psw loaded as idle time. */
        idle->sequence++;
        smp_wmb();
-       idle_time = idle->idle_exit - idle->idle_enter;
+       idle_time = idle->clock_idle_exit - idle->clock_idle_enter;
+       idle->clock_idle_enter = idle->clock_idle_exit = 0ULL;
        idle->idle_time += idle_time;
-       idle->idle_enter = idle->idle_exit = 0ULL;
        idle->idle_count++;
        account_idle_time(idle_time);
        smp_wmb();
@@ -167,10 +182,10 @@ cputime64_t s390_get_idle_time(int cpu)
        do {
                now = get_clock();
                sequence = ACCESS_ONCE(idle->sequence);
-               idle_enter = ACCESS_ONCE(idle->idle_enter);
-               idle_exit = ACCESS_ONCE(idle->idle_exit);
+               idle_enter = ACCESS_ONCE(idle->clock_idle_enter);
+               idle_exit = ACCESS_ONCE(idle->clock_idle_exit);
        } while ((sequence & 1) || (idle->sequence != sequence));
-       return idle_enter ? ((idle_exit ? : now) - idle_enter) : 0;
+       return idle_enter ? ((idle_exit ?: now) - idle_enter) : 0;
 }
 
 /*
@@ -179,11 +194,11 @@ cputime64_t s390_get_idle_time(int cpu)
  */
 static void list_add_sorted(struct vtimer_list *timer, struct list_head *head)
 {
-       struct vtimer_list *event;
+       struct vtimer_list *tmp;
 
-       list_for_each_entry(event, head, entry) {
-               if (event->expires > timer->expires) {
-                       list_add_tail(&timer->entry, &event->entry);
+       list_for_each_entry(tmp, head, entry) {
+               if (tmp->expires > timer->expires) {
+                       list_add_tail(&timer->entry, &tmp->entry);
                        return;
                }
        }
@@ -191,82 +206,45 @@ static void list_add_sorted(struct vtimer_list *timer, struct list_head *head)
 }
 
 /*
- * Do the callback functions of expired vtimer events.
- * Called from within the interrupt handler.
- */
-static void do_callbacks(struct list_head *cb_list)
-{
-       struct vtimer_queue *vq;
-       struct vtimer_list *event, *tmp;
-
-       if (list_empty(cb_list))
-               return;
-
-       vq = &__get_cpu_var(virt_cpu_timer);
-
-       list_for_each_entry_safe(event, tmp, cb_list, entry) {
-               list_del_init(&event->entry);
-               (event->function)(event->data);
-               if (event->interval) {
-                       /* Recharge interval timer */
-                       event->expires = event->interval + vq->elapsed;
-                       spin_lock(&vq->lock);
-                       list_add_sorted(event, &vq->list);
-                       spin_unlock(&vq->lock);
-               }
-       }
-}
-
-/*
- * Handler for the virtual CPU timer.
+ * Handler for expired virtual CPU timer.
  */
-static void do_cpu_timer_interrupt(struct ext_code ext_code,
-                                  unsigned int param32, unsigned long param64)
+static void virt_timer_expire(void)
 {
-       struct vtimer_queue *vq;
-       struct vtimer_list *event, *tmp;
-       struct list_head cb_list;       /* the callback queue */
-       __u64 elapsed, next;
-
-       kstat_cpu(smp_processor_id()).irqs[EXTINT_TMR]++;
-       INIT_LIST_HEAD(&cb_list);
-       vq = &__get_cpu_var(virt_cpu_timer);
-
-       /* walk timer list, fire all expired events */
-       spin_lock(&vq->lock);
-
-       elapsed = vq->elapsed + (vq->timer - S390_lowcore.async_enter_timer);
-       BUG_ON((s64) elapsed < 0);
-       vq->elapsed = 0;
-       list_for_each_entry_safe(event, tmp, &vq->list, entry) {
-               if (event->expires < elapsed)
+       struct vtimer_list *timer, *tmp;
+       unsigned long elapsed;
+       LIST_HEAD(cb_list);
+
+       /* walk timer list, fire all expired timers */
+       spin_lock(&virt_timer_lock);
+       elapsed = atomic64_read(&virt_timer_elapsed);
+       list_for_each_entry_safe(timer, tmp, &virt_timer_list, entry) {
+               if (timer->expires < elapsed)
                        /* move expired timer to the callback queue */
-                       list_move_tail(&event->entry, &cb_list);
+                       list_move_tail(&timer->entry, &cb_list);
                else
-                       event->expires -= elapsed;
+                       timer->expires -= elapsed;
        }
-       spin_unlock(&vq->lock);
-
-       do_callbacks(&cb_list);
-
-       /* next event is first in list */
-       next = VTIMER_MAX_SLICE;
-       spin_lock(&vq->lock);
-       if (!list_empty(&vq->list)) {
-               event = list_first_entry(&vq->list, struct vtimer_list, entry);
-               next = event->expires;
+       if (!list_empty(&virt_timer_list)) {
+               timer = list_first_entry(&virt_timer_list,
+                                        struct vtimer_list, entry);
+               atomic64_set(&virt_timer_current, timer->expires);
+       }
+       atomic64_sub(elapsed, &virt_timer_elapsed);
+       spin_unlock(&virt_timer_lock);
+
+       /* Do callbacks and recharge periodic timers */
+       list_for_each_entry_safe(timer, tmp, &cb_list, entry) {
+               list_del_init(&timer->entry);
+               timer->function(timer->data);
+               if (timer->interval) {
+                       /* Recharge interval timer */
+                       timer->expires = timer->interval +
+                               atomic64_read(&virt_timer_elapsed);
+                       spin_lock(&virt_timer_lock);
+                       list_add_sorted(timer, &virt_timer_list);
+                       spin_unlock(&virt_timer_lock);
+               }
        }
-       spin_unlock(&vq->lock);
-       /*
-        * To improve precision add the time spent by the
-        * interrupt handler to the elapsed time.
-        * Note: CPU timer counts down and we got an interrupt,
-        *       the current content is negative
-        */
-       elapsed = S390_lowcore.async_enter_timer - get_vtimer();
-       set_vtimer(next - elapsed);
-       vq->timer = next - elapsed;
-       vq->elapsed = elapsed;
 }
 
 void init_virt_timer(struct vtimer_list *timer)
@@ -278,179 +256,108 @@ EXPORT_SYMBOL(init_virt_timer);
 
 static inline int vtimer_pending(struct vtimer_list *timer)
 {
-       return (!list_empty(&timer->entry));
+       return !list_empty(&timer->entry);
 }
 
-/*
- * this function should only run on the specified CPU
- */
 static void internal_add_vtimer(struct vtimer_list *timer)
 {
-       struct vtimer_queue *vq;
-       unsigned long flags;
-       __u64 left, expires;
-
-       vq = &per_cpu(virt_cpu_timer, timer->cpu);
-       spin_lock_irqsave(&vq->lock, flags);
-
-       BUG_ON(timer->cpu != smp_processor_id());
-
-       if (list_empty(&vq->list)) {
-               /* First timer on this cpu, just program it. */
-               list_add(&timer->entry, &vq->list);
-               set_vtimer(timer->expires);
-               vq->timer = timer->expires;
-               vq->elapsed = 0;
+       if (list_empty(&virt_timer_list)) {
+               /* First timer, just program it. */
+               atomic64_set(&virt_timer_current, timer->expires);
+               atomic64_set(&virt_timer_elapsed, 0);
+               list_add(&timer->entry, &virt_timer_list);
        } else {
-               /* Check progress of old timers. */
-               expires = timer->expires;
-               left = get_vtimer();
-               if (likely((s64) expires < (s64) left)) {
+               /* Update timer against current base. */
+               timer->expires += atomic64_read(&virt_timer_elapsed);
+               if (likely((s64) timer->expires <
+                          (s64) atomic64_read(&virt_timer_current)))
                        /* The new timer expires before the current timer. */
-                       set_vtimer(expires);
-                       vq->elapsed += vq->timer - left;
-                       vq->timer = expires;
-               } else {
-                       vq->elapsed += vq->timer - left;
-                       vq->timer = left;
-               }
-               /* Insert new timer into per cpu list. */
-               timer->expires += vq->elapsed;
-               list_add_sorted(timer, &vq->list);
+                       atomic64_set(&virt_timer_current, timer->expires);
+               /* Insert new timer into the list. */
+               list_add_sorted(timer, &virt_timer_list);
        }
-
-       spin_unlock_irqrestore(&vq->lock, flags);
-       /* release CPU acquired in prepare_vtimer or mod_virt_timer() */
-       put_cpu();
 }
 
-static inline void prepare_vtimer(struct vtimer_list *timer)
+static void __add_vtimer(struct vtimer_list *timer, int periodic)
 {
-       BUG_ON(!timer->function);
-       BUG_ON(!timer->expires || timer->expires > VTIMER_MAX_SLICE);
-       BUG_ON(vtimer_pending(timer));
-       timer->cpu = get_cpu();
+       unsigned long flags;
+
+       timer->interval = periodic ? timer->expires : 0;
+       spin_lock_irqsave(&virt_timer_lock, flags);
+       internal_add_vtimer(timer);
+       spin_unlock_irqrestore(&virt_timer_lock, flags);
 }
 
 /*
  * add_virt_timer - add an oneshot virtual CPU timer
  */
-void add_virt_timer(void *new)
+void add_virt_timer(struct vtimer_list *timer)
 {
-       struct vtimer_list *timer;
-
-       timer = (struct vtimer_list *)new;
-       prepare_vtimer(timer);
-       timer->interval = 0;
-       internal_add_vtimer(timer);
+       __add_vtimer(timer, 0);
 }
 EXPORT_SYMBOL(add_virt_timer);
 
 /*
  * add_virt_timer_int - add an interval virtual CPU timer
  */
-void add_virt_timer_periodic(void *new)
+void add_virt_timer_periodic(struct vtimer_list *timer)
 {
-       struct vtimer_list *timer;
-
-       timer = (struct vtimer_list *)new;
-       prepare_vtimer(timer);
-       timer->interval = timer->expires;
-       internal_add_vtimer(timer);
+       __add_vtimer(timer, 1);
 }
 EXPORT_SYMBOL(add_virt_timer_periodic);
 
-static int __mod_vtimer(struct vtimer_list *timer, __u64 expires, int periodic)
+static int __mod_vtimer(struct vtimer_list *timer, u64 expires, int periodic)
 {
-       struct vtimer_queue *vq;
        unsigned long flags;
-       int cpu;
+       int rc;
 
        BUG_ON(!timer->function);
-       BUG_ON(!expires || expires > VTIMER_MAX_SLICE);
 
        if (timer->expires == expires && vtimer_pending(timer))
                return 1;
-
-       cpu = get_cpu();
-       vq = &per_cpu(virt_cpu_timer, cpu);
-
-       /* disable interrupts before test if timer is pending */
-       spin_lock_irqsave(&vq->lock, flags);
-
-       /* if timer isn't pending add it on the current CPU */
-       if (!vtimer_pending(timer)) {
-               spin_unlock_irqrestore(&vq->lock, flags);
-
-               if (periodic)
-                       timer->interval = expires;
-               else
-                       timer->interval = 0;
-               timer->expires = expires;
-               timer->cpu = cpu;
-               internal_add_vtimer(timer);
-               return 0;
-       }
-
-       /* check if we run on the right CPU */
-       BUG_ON(timer->cpu != cpu);
-
-       list_del_init(&timer->entry);
+       spin_lock_irqsave(&virt_timer_lock, flags);
+       rc = vtimer_pending(timer);
+       if (rc)
+               list_del_init(&timer->entry);
+       timer->interval = periodic ? expires : 0;
        timer->expires = expires;
-       if (periodic)
-               timer->interval = expires;
-
-       /* the timer can't expire anymore so we can release the lock */
-       spin_unlock_irqrestore(&vq->lock, flags);
        internal_add_vtimer(timer);
-       return 1;
+       spin_unlock_irqrestore(&virt_timer_lock, flags);
+       return rc;
 }
 
 /*
- * If we change a pending timer the function must be called on the CPU
- * where the timer is running on.
- *
  * returns whether it has modified a pending timer (1) or not (0)
  */
-int mod_virt_timer(struct vtimer_list *timer, __u64 expires)
+int mod_virt_timer(struct vtimer_list *timer, u64 expires)
 {
        return __mod_vtimer(timer, expires, 0);
 }
 EXPORT_SYMBOL(mod_virt_timer);
 
 /*
- * If we change a pending timer the function must be called on the CPU
- * where the timer is running on.
- *
  * returns whether it has modified a pending timer (1) or not (0)
  */
-int mod_virt_timer_periodic(struct vtimer_list *timer, __u64 expires)
+int mod_virt_timer_periodic(struct vtimer_list *timer, u64 expires)
 {
        return __mod_vtimer(timer, expires, 1);
 }
 EXPORT_SYMBOL(mod_virt_timer_periodic);
 
 /*
- * delete a virtual timer
+ * Delete a virtual timer.
  *
  * returns whether the deleted timer was pending (1) or not (0)
  */
 int del_virt_timer(struct vtimer_list *timer)
 {
        unsigned long flags;
-       struct vtimer_queue *vq;
 
-       /* check if timer is pending */
        if (!vtimer_pending(timer))
                return 0;
-
-       vq = &per_cpu(virt_cpu_timer, timer->cpu);
-       spin_lock_irqsave(&vq->lock, flags);
-
-       /* we don't interrupt a running timer, just let it expire! */
+       spin_lock_irqsave(&virt_timer_lock, flags);
        list_del_init(&timer->entry);
-
-       spin_unlock_irqrestore(&vq->lock, flags);
+       spin_unlock_irqrestore(&virt_timer_lock, flags);
        return 1;
 }
 EXPORT_SYMBOL(del_virt_timer);
@@ -458,20 +365,10 @@ EXPORT_SYMBOL(del_virt_timer);
 /*
  * Start the virtual CPU timer on the current CPU.
  */
-void init_cpu_vtimer(void)
+void __cpuinit init_cpu_vtimer(void)
 {
-       struct vtimer_queue *vq;
-
-       /* initialize per cpu vtimer structure */
-       vq = &__get_cpu_var(virt_cpu_timer);
-       INIT_LIST_HEAD(&vq->list);
-       spin_lock_init(&vq->lock);
-
-       /* enable cpu timer interrupts */
-       __ctl_set_bit(0,10);
-
        /* set initial cpu timer */
-       set_vtimer(0x7fffffffffffffffULL);
+       set_vtimer(VTIMER_MAX_SLICE);
 }
 
 static int __cpuinit s390_nohz_notify(struct notifier_block *self,
@@ -493,12 +390,7 @@ static int __cpuinit s390_nohz_notify(struct notifier_block *self,
 
 void __init vtime_init(void)
 {
-       /* request the cpu timer external interrupt */
-       if (register_external_interrupt(0x1005, do_cpu_timer_interrupt))
-               panic("Couldn't request external interrupt 0x1005");
-
        /* Enable cpu timer interrupts on the boot cpu. */
        init_cpu_vtimer();
        cpu_notifier(s390_nohz_notify, 0);
 }
-
index b23d9ac77dfc77fcf090f52fc739b17cc036a69c..c88bb7793390d7a1e26d0982529b32d4747ca67f 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * diag.c - handling diagnose instructions
+ * handling diagnose instructions
  *
- * Copyright IBM Corp. 2008,2011
+ * Copyright IBM Corp. 2008, 2011
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License (version 2 only)
index c86f6ae43f7612ea63e6f626565f30eee7db67f3..4703f129e95e1153570129a0a0f0fc79c34b0f1e 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * access.h -  access guest memory
+ * access guest memory
  *
- * Copyright IBM Corp. 2008,2009
+ * Copyright IBM Corp. 2008, 2009
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License (version 2 only)
index 979cbe55bf5ef1dd42589935ba04aa208d2bb30a..adae539f12e2fbaeb49f41b462f95bc4354ce3f9 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * intercept.c - in-kernel handling for sie intercepts
+ * in-kernel handling for sie intercepts
  *
- * Copyright IBM Corp. 2008,2009
+ * Copyright IBM Corp. 2008, 2009
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License (version 2 only)
index 2d9f9a72bb8108ddb3ea4c03c3339eb0d3f5d118..b7bc1aac8ed2dc3611c50f24c7c4b53989642661 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * interrupt.c - handling kvm guest interrupts
+ * handling kvm guest interrupts
  *
  * Copyright IBM Corp. 2008
  *
index 664766d0c83c6a8461634c4dfd31679cf74c7b02..c552d1f4103f772561ee3e5fac5a35c90cc7520a 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * s390host.c --  hosting zSeries kernel virtual machines
+ * hosting zSeries kernel virtual machines
  *
- * Copyright IBM Corp. 2008,2009
+ * Copyright IBM Corp. 2008, 2009
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License (version 2 only)
index 2294377975e8cf56ad06e03d380a4e211820bce3..d75bc5e92c5bf4c53a3a19bf2479007646834f49 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * kvm_s390.h -  definition for kvm on s390
+ * definition for kvm on s390
  *
- * Copyright IBM Corp. 2008,2009
+ * Copyright IBM Corp. 2008, 2009
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License (version 2 only)
index 68a6b2ed16bf125c56ce7456e76c68f4fd6bd236..60da903d6f3ecbb596a2fc90352be1fffc137315 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * priv.c - handling privileged instructions
+ * handling privileged instructions
  *
  * Copyright IBM Corp. 2008
  *
index 0ad4cf238391d5889b8d3ea955c116edd6a80a36..1ab2ce1611c5e46e71d12d25671f39a7b2f9aa78 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * sigp.c - handlinge interprocessor communication
+ * handling interprocessor communication
  *
- * Copyright IBM Corp. 2008,2009
+ * Copyright IBM Corp. 2008, 2009
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License (version 2 only)
 #include <linux/kvm.h>
 #include <linux/kvm_host.h>
 #include <linux/slab.h>
+#include <asm/sigp.h>
 #include "gaccess.h"
 #include "kvm-s390.h"
 
-/* sigp order codes */
-#define SIGP_SENSE             0x01
-#define SIGP_EXTERNAL_CALL     0x02
-#define SIGP_EMERGENCY         0x03
-#define SIGP_START             0x04
-#define SIGP_STOP              0x05
-#define SIGP_RESTART           0x06
-#define SIGP_STOP_STORE_STATUS 0x09
-#define SIGP_INITIAL_CPU_RESET 0x0b
-#define SIGP_CPU_RESET         0x0c
-#define SIGP_SET_PREFIX        0x0d
-#define SIGP_STORE_STATUS_ADDR 0x0e
-#define SIGP_SET_ARCH          0x12
-#define SIGP_SENSE_RUNNING     0x15
-
-/* cpu status bits */
-#define SIGP_STAT_EQUIPMENT_CHECK   0x80000000UL
-#define SIGP_STAT_NOT_RUNNING      0x00000400UL
-#define SIGP_STAT_INCORRECT_STATE   0x00000200UL
-#define SIGP_STAT_INVALID_PARAMETER 0x00000100UL
-#define SIGP_STAT_EXT_CALL_PENDING  0x00000080UL
-#define SIGP_STAT_STOPPED           0x00000040UL
-#define SIGP_STAT_OPERATOR_INTERV   0x00000020UL
-#define SIGP_STAT_CHECK_STOP        0x00000010UL
-#define SIGP_STAT_INOPERATIVE       0x00000004UL
-#define SIGP_STAT_INVALID_ORDER     0x00000002UL
-#define SIGP_STAT_RECEIVER_CHECK    0x00000001UL
-
-
 static int __sigp_sense(struct kvm_vcpu *vcpu, u16 cpu_addr,
                        u64 *reg)
 {
@@ -65,7 +37,7 @@ static int __sigp_sense(struct kvm_vcpu *vcpu, u16 cpu_addr,
                rc = 1; /* status stored */
        } else {
                *reg &= 0xffffffff00000000UL;
-               *reg |= SIGP_STAT_STOPPED;
+               *reg |= SIGP_STATUS_STOPPED;
                rc = 1; /* status stored */
        }
        spin_unlock(&fi->lock);
@@ -235,7 +207,7 @@ static int __sigp_set_prefix(struct kvm_vcpu *vcpu, u16 cpu_addr, u32 address,
        address = address & 0x7fffe000u;
        if (copy_from_guest_absolute(vcpu, &tmp, address, 1) ||
           copy_from_guest_absolute(vcpu, &tmp, address + PAGE_SIZE, 1)) {
-               *reg |= SIGP_STAT_INVALID_PARAMETER;
+               *reg |= SIGP_STATUS_INVALID_PARAMETER;
                return 1; /* invalid parameter */
        }
 
@@ -249,7 +221,7 @@ static int __sigp_set_prefix(struct kvm_vcpu *vcpu, u16 cpu_addr, u32 address,
 
        if (li == NULL) {
                rc = 1; /* incorrect state */
-               *reg &= SIGP_STAT_INCORRECT_STATE;
+               *reg &= SIGP_STATUS_INCORRECT_STATE;
                kfree(inti);
                goto out_fi;
        }
@@ -258,7 +230,7 @@ static int __sigp_set_prefix(struct kvm_vcpu *vcpu, u16 cpu_addr, u32 address,
        /* cpu must be in stopped state */
        if (!(atomic_read(li->cpuflags) & CPUSTAT_STOPPED)) {
                rc = 1; /* incorrect state */
-               *reg &= SIGP_STAT_INCORRECT_STATE;
+               *reg &= SIGP_STATUS_INCORRECT_STATE;
                kfree(inti);
                goto out_li;
        }
@@ -300,7 +272,7 @@ static int __sigp_sense_running(struct kvm_vcpu *vcpu, u16 cpu_addr,
                } else {
                        /* not running */
                        *reg &= 0xffffffff00000000UL;
-                       *reg |= SIGP_STAT_NOT_RUNNING;
+                       *reg |= SIGP_STATUS_NOT_RUNNING;
                        rc = 0;
                }
        }
@@ -375,7 +347,7 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu)
                vcpu->stat.instruction_sigp_external_call++;
                rc = __sigp_external_call(vcpu, cpu_addr);
                break;
-       case SIGP_EMERGENCY:
+       case SIGP_EMERGENCY_SIGNAL:
                vcpu->stat.instruction_sigp_emergency++;
                rc = __sigp_emergency(vcpu, cpu_addr);
                break;
@@ -383,12 +355,12 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu)
                vcpu->stat.instruction_sigp_stop++;
                rc = __sigp_stop(vcpu, cpu_addr, ACTION_STOP_ON_STOP);
                break;
-       case SIGP_STOP_STORE_STATUS:
+       case SIGP_STOP_AND_STORE_STATUS:
                vcpu->stat.instruction_sigp_stop++;
                rc = __sigp_stop(vcpu, cpu_addr, ACTION_STORE_ON_STOP |
                                                 ACTION_STOP_ON_STOP);
                break;
-       case SIGP_SET_ARCH:
+       case SIGP_SET_ARCHITECTURE:
                vcpu->stat.instruction_sigp_arch++;
                rc = __sigp_set_arch(vcpu, parameter);
                break;
index 9f1f71e857784096b76ddf88f92c5464813a39b4..42d0cf89121def981b0d3b2852004ec04ea66bf8 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *    Precise Delay Loops for S390
  *
- *    Copyright IBM Corp. 1999,2008
+ *    Copyright IBM Corp. 1999, 2008
  *    Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *              Heiko Carstens <heiko.carstens@de.ibm.com>,
  */
@@ -12,8 +12,8 @@
 #include <linux/module.h>
 #include <linux/irqflags.h>
 #include <linux/interrupt.h>
+#include <asm/vtimer.h>
 #include <asm/div64.h>
-#include <asm/timer.h>
 
 void __delay(unsigned long loops)
 {
index d9e62c0b576a2691088f62f537cb0f1e237f7194..261152f832424602988abbb4073bc14d10b231eb 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  arch/s390/lib/div64.c
- *
  *  __div64_32 implementation for 31 bit.
  *
- *    Copyright (C) IBM Corp. 2006
+ *    Copyright IBM Corp. 2006
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  */
 
index 093eb694d9c157c717d56a685eb104dd03b0cdab..f709983f41f883ed567aeba87a6c1e15bc196340 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  arch/s390/lib/spinlock.c
  *    Out of line spinlock code.
  *
- *    Copyright (C) IBM Corp. 2004, 2006
+ *    Copyright IBM Corp. 2004, 2006
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
 
index 4143b7c1909628fd7e8284b97acfc9392e158910..846ec64ab2c9f3a9d36fb5d70478b6acffaeface 100644 (file)
@@ -1,9 +1,8 @@
 /*
- *  arch/s390/lib/string.c
  *    Optimized string functions
  *
  *  S390 version
- *    Copyright (C) 2004 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 2004
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
 
index 1d2536cb630bc5a99ce5f88a3cba871cc096b519..315dbe09983e518b06326b2f730c45a176a57aa5 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  arch/s390/uaccess.h
- *
  *    Copyright IBM Corp. 2007
  *
  */
index 58a75a8ae90ce7beae1a4553801c47dd544cd1ee..2443ae476e333944291d4ded535ce3ba9fe5e5bf 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  arch/s390/lib/uaccess_mvcos.c
- *
  *  Optimized user space space access functions based on mvcos.
  *
- *    Copyright (C) IBM Corp. 2006
+ *    Copyright IBM Corp. 2006
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  *              Gerald Schaefer (gerald.schaefer@de.ibm.com)
  */
index 342ae35a5ba90ddbcf89ef2a6dc5b8676de2faff..60ee2b8837972c27d8bfb3d95dd9fc3b0b4d0091 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  arch/s390/lib/uaccess_pt.c
- *
  *  User access functions based on page table walks for enhanced
  *  system layout without hardware support.
  *
index 57e94298539b51326ff1d9a4a10a9ef36c405326..6fbd063382709f7ec3a9a0ca2fafbaa0cf72dd86 100644 (file)
@@ -1,10 +1,8 @@
 /*
- *  arch/s390/lib/uaccess_std.c
- *
  *  Standard user space access functions based on mvcp/mvcs and doing
  *  interesting things in the secondary space mode.
  *
- *    Copyright (C) IBM Corp. 2006
+ *    Copyright IBM Corp. 2006
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  *              Gerald Schaefer (gerald.schaefer@de.ibm.com)
  */
index cd4e9c168dd7674d2fcd918fdaa3ff21c4e38fe1..58bff541fde9c95edcd0db4f49da3aa8629371b9 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  arch/s390/math-emu/math.c
- *
  *  S390 version
- *    Copyright (C) 1999-2001 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999, 2001
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  *
  * 'math.c' emulates IEEE instructions on a S390 processor
index 1f1dba9dcf58f713211bbb6b3fc063171681ed70..479e94282910199d8268efd05b5f0e2be0d4526e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Collaborative memory management interface.
  *
- *    Copyright IBM Corp 2003,2010
+ *    Copyright IBM Corp 2003, 2010
  *    Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *
  */
index 075ddada4911bd05369d292d3e04d4b95eb56771..519bba716cc30c29acbb74f7cfd30db876af170c 100644 (file)
@@ -1,10 +1,9 @@
 /*
- * File...........: arch/s390/mm/extmem.c
  * Author(s)......: Carsten Otte <cotte@de.ibm.com>
  *                 Rob M van der Heij <rvdheij@nl.ibm.com>
  *                 Steven Shultz <shultzss@us.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation 2002-2004
+ * Copyright IBM Corp. 2002, 2004
  */
 
 #define KMSG_COMPONENT "extmem"
index 72cec9ecd96c7304486fc49b732764edcf4cb0f3..6a12d1bb6e09d065e5a4b2625ce79ba7209b5c2b 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  arch/s390/mm/fault.c
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Hartmut Penner (hp@de.ibm.com)
  *               Ulrich Weigand (uweigand@de.ibm.com)
  *
index 900de2b3cf28fb640417d1f4f94289b4ece2f08d..532525ec88c1ebce808da0e5b6dc06630b4d997f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  IBM System z Huge TLB Page Support for Kernel.
  *
- *    Copyright 2007 IBM Corp.
+ *    Copyright IBM Corp. 2007
  *    Author(s): Gerald Schaefer <gerald.schaefer@de.ibm.com>
  */
 
index 2bea0605856e85ac76e96c7e7c8dbb34ff6c94a5..6adbc082618a1893b4ad4b074be9aefb577584c8 100644 (file)
@@ -1,8 +1,6 @@
 /*
- *  arch/s390/mm/init.c
- *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Hartmut Penner (hp@de.ibm.com)
  *
  *  Derived from "arch/i386/mm/init.c"
index 2857c48486ea9005ba5d3bb8a9924e4704c8ceb2..573384256c5c5ebd1aa65295e635e808345902d0 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  linux/arch/s390/mm/mmap.c
- *
  *  flexible mmap layout support
  *
  * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.
index a3db5a3ea0836c6412c21f92bed109cca9962242..1cab221077cc872b5f5e5528ff1918d8551fa9d2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *    Copyright IBM Corp. 2007,2011
+ *    Copyright IBM Corp. 2007, 2011
  *    Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
  */
 
index 71ae20df674e53f051834f20319f3c48fae1358b..6f896e75ab49da1f58eb83c249a7e880f800a3ea 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  arch/s390/mm/vmem.c
- *
  *    Copyright IBM Corp. 2006
  *    Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
  */
index bc4b84a35cadde2420c41a5580be3408ebf57181..c82f62fb9c28ef6096a486c6a3458725e91b31e3 100644 (file)
@@ -1,8 +1,6 @@
-/**
- * arch/s390/oprofile/backtrace.c
- *
+/*
  * S390 Version
- *   Copyright (C) 2005 IBM Corporation, IBM Deutschland Entwicklung GmbH.
+ *   Copyright IBM Corp. 2005
  *   Author(s): Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
  */
 
index a4a89fa980d6c4e0e8e44a00e8519d9ead2ac2b1..0cb385da202c60836fd2cd006e5950ed448de656 100644 (file)
@@ -1,6 +1,4 @@
-/**
- * arch/s390/oprofile/hwsampler.c
- *
+/*
  * Copyright IBM Corp. 2010
  * Author: Heinz Graalfs <graalfs@de.ibm.com>
  */
index 2297be406c61a5d78d473a2890bb755715a8f210..a1e9d69a9c90e579c2f68cea8869ae6ec26d05c4 100644 (file)
@@ -1,8 +1,6 @@
-/**
- * arch/s390/oprofile/init.c
- *
+/*
  * S390 Version
- *   Copyright (C) 2002-2011 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *   Copyright IBM Corp. 2002, 2011
  *   Author(s): Thomas Spatzier (tspat@de.ibm.com)
  *   Author(s): Mahesh Salgaonkar (mahesh@linux.vnet.ibm.com)
  *   Author(s): Heinz Graalfs (graalfs@linux.vnet.ibm.com)
index 1a8d3ca09014c36fdf967ee981f258e3012b9949..61b2531eef17edb07b2b7e6dad78ddfdbefd1ce5 100644 (file)
@@ -1,7 +1,5 @@
-/**
- * arch/s390/oprofile/op_counter.h
- *
- *   Copyright (C) 2011 IBM Deutschland Entwicklung GmbH, IBM Corporation
+/*
+ *   Copyright IBM Corp. 2011
  *   Author(s): Andreas Krebbel (krebbel@linux.vnet.ibm.com)
  *
  * @remark Copyright 2011 OProfile authors
index f3509120a507f56e3b152e1dee4cb5990ce23d79..15370a2c5ff0b29e5286a9ffb2660beefd045f2e 100644 (file)
@@ -1,5 +1,4 @@
 /*
- * File...........: linux/drivers/s390/block/dasd.c
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  *                 Horst Hummel <Horst.Hummel@de.ibm.com>
  *                 Carsten Otte <Cotte@de.ibm.com>
@@ -52,7 +51,7 @@ void dasd_int_handler(struct ccw_device *, unsigned long, struct irb *);
 
 MODULE_AUTHOR("Holger Smolinski <Holger.Smolinski@de.ibm.com>");
 MODULE_DESCRIPTION("Linux on S/390 DASD device driver,"
-                  " Copyright 2000 IBM Corporation");
+                  " Copyright IBM Corp. 2000");
 MODULE_SUPPORTED_DEVICE("dasd");
 MODULE_LICENSE("GPL");
 
@@ -82,6 +81,7 @@ static void dasd_profile_exit(struct dasd_profile *);
 static wait_queue_head_t dasd_init_waitq;
 static wait_queue_head_t dasd_flush_wq;
 static wait_queue_head_t generic_waitq;
+static wait_queue_head_t shutdown_waitq;
 
 /*
  * Allocate memory for a new device structure.
@@ -1994,6 +1994,8 @@ static void dasd_device_tasklet(struct dasd_device *device)
        /* Now check if the head of the ccw queue needs to be started. */
        __dasd_device_start_head(device);
        spin_unlock_irq(get_ccwdev_lock(device->cdev));
+       if (waitqueue_active(&shutdown_waitq))
+               wake_up(&shutdown_waitq);
        dasd_put_device(device);
 }
 
@@ -2632,6 +2634,8 @@ static void dasd_block_tasklet(struct dasd_block *block)
        __dasd_block_start_head(block);
        spin_unlock(&block->queue_lock);
        spin_unlock_irq(&block->request_queue_lock);
+       if (waitqueue_active(&shutdown_waitq))
+               wake_up(&shutdown_waitq);
        dasd_put_device(block->base);
 }
 
@@ -3474,6 +3478,32 @@ char *dasd_get_sense(struct irb *irb)
 }
 EXPORT_SYMBOL_GPL(dasd_get_sense);
 
+static inline int _wait_for_empty_queues(struct dasd_device *device)
+{
+       if (device->block)
+               return list_empty(&device->ccw_queue) &&
+                       list_empty(&device->block->ccw_queue);
+       else
+               return list_empty(&device->ccw_queue);
+}
+
+void dasd_generic_shutdown(struct ccw_device *cdev)
+{
+       struct dasd_device *device;
+
+       device = dasd_device_from_cdev(cdev);
+       if (IS_ERR(device))
+               return;
+
+       if (device->block)
+               dasd_schedule_block_bh(device->block);
+
+       dasd_schedule_device_bh(device);
+
+       wait_event(shutdown_waitq, _wait_for_empty_queues(device));
+}
+EXPORT_SYMBOL_GPL(dasd_generic_shutdown);
+
 static int __init dasd_init(void)
 {
        int rc;
@@ -3481,6 +3511,7 @@ static int __init dasd_init(void)
        init_waitqueue_head(&dasd_init_waitq);
        init_waitqueue_head(&dasd_flush_wq);
        init_waitqueue_head(&generic_waitq);
+       init_waitqueue_head(&shutdown_waitq);
 
        /* register 'common' DASD debug area, used for all DBF_XXX calls */
        dasd_debug_area = debug_register("dasd", 1, 1, 8 * sizeof(long));
index 0326571e7ffa61f0a15ee4782897393146132421..f8212d54013a8515188518cd4ee7ea175c9d1d44 100644 (file)
@@ -1,9 +1,8 @@
 /*
- * File...........: linux/drivers/s390/block/dasd_3990_erp.c
  * Author(s)......: Horst  Hummel    <Horst.Hummel@de.ibm.com>
  *                 Holger Smolinski <Holger.Smolinski@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2000, 2001
+ * Copyright IBM Corp. 2000, 2001
  *
  */
 
index b3beed5434e43d8064cbf48659a4ff9426ea3c36..157defe5e0693c06c6432ddfbd65d0f6632a6f90 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * PAV alias management for the DASD ECKD discipline
  *
- * Copyright IBM Corporation, 2007
+ * Copyright IBM Corp. 2007
  * Author(s): Stefan Weinhuber <wein@de.ibm.com>
  */
 
index d71511c7850a8560014ceee03c468e4da24c361a..b2b8c18eecedc98f32b708aa000649f35102fa93 100644 (file)
@@ -1,11 +1,10 @@
 /*
- * File...........: linux/drivers/s390/block/dasd_devmap.c
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  *                 Horst Hummel <Horst.Hummel@de.ibm.com>
  *                 Carsten Otte <Cotte@de.ibm.com>
  *                 Martin Schwidefsky <schwidefsky@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2001
+ * Copyright IBM Corp. 1999,2001
  *
  * Device mapping and dasd= parameter parsing functions. All devmap
  * functions may not be called from interrupt context. In particular
index 0cea7e98f464bd30d54556675b7a5174ab420b15..9bd5da36f99eb2d3a36642b05508d5578f473846 100644 (file)
@@ -1,10 +1,9 @@
 /*
- * File...........: linux/drivers/s390/block/dasd_diag.c
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  * Based on.......: linux/drivers/s390/block/mdisk.c
  * ...............: by Hartmunt Penner <hpenner@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000
+ * Copyright IBM Corp. 1999, 2000
  *
  */
 
index 4f71fbe60c8294df766d783c2ace72c33ef0d50a..a803cc731586cc69191867eaf7eb7d6d55e1b232 100644 (file)
@@ -1,10 +1,9 @@
 /*
- * File...........: linux/drivers/s390/block/dasd_diag.h
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  * Based on.......: linux/drivers/s390/block/mdisk.h
  * ...............: by Hartmunt Penner <hpenner@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000
+ * Copyright IBM Corp. 1999, 2000
  *
  */
 
index bc2e8a7c265b518e8049bdb1877e0cf57a1b19a2..40a826a7295f7282ec8f05e2dcfd66d8f9601927 100644 (file)
@@ -1,5 +1,4 @@
 /*
- * File...........: linux/drivers/s390/block/dasd_eckd.c
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  *                 Horst Hummel <Horst.Hummel@de.ibm.com>
  *                 Carsten Otte <Cotte@de.ibm.com>
@@ -4247,6 +4246,7 @@ static struct ccw_driver dasd_eckd_driver = {
        .set_online  = dasd_eckd_set_online,
        .notify      = dasd_generic_notify,
        .path_event  = dasd_generic_path_event,
+       .shutdown    = dasd_generic_shutdown,
        .freeze      = dasd_generic_pm_freeze,
        .thaw        = dasd_generic_restore_device,
        .restore     = dasd_generic_restore_device,
index 4a688a873a77bac88b6e2bbd26619653d1796d7b..2555e494591ff57f6e75202f46ae8b4ea61ee9e8 100644 (file)
@@ -1,9 +1,8 @@
 /*
- * File...........: linux/drivers/s390/block/dasd_eckd.h
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  *                 Horst Hummel <Horst.Hummel@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000
+ * Copyright IBM Corp. 1999, 2000
  *
  */
 
index 16c5208c3dc787c8115941fba4895b305f35760c..ff901b5509c10bca67b67c9f4cc4a133f267b0a0 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Character device driver for extended error reporting.
  *
- *  Copyright (C) 2005 IBM Corporation
+ *  Copyright IBM Corp. 2005
  *  extended error reporting for DASD ECKD devices
  *  Author(s): Stefan Weinhuber <wein@de.ibm.com>
  */
index 0eafe2e421e7dfadccdcb0f087ab80605ccd4d24..d01ef82f8757bab711fd8e33736826362f98faea 100644 (file)
@@ -1,11 +1,10 @@
 /*
- * File...........: linux/drivers/s390/block/dasd.c
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  *                 Horst Hummel <Horst.Hummel@de.ibm.com>
  *                 Carsten Otte <Cotte@de.ibm.com>
  *                 Martin Schwidefsky <schwidefsky@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2001
+ * Copyright IBM Corp. 1999, 2001
  *
  */
 
index a62a75358eb94ab7686373e7e166628e1eaf2773..fb7f3bdc66049210753b254c4dc972442c9d224a 100644 (file)
@@ -1,5 +1,4 @@
 /*
- * File...........: linux/drivers/s390/block/dasd_fba.c
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
  * Copyright IBM Corp. 1999, 2009
index 14c910baa5fe6160192b7c548d8921b829707eda..b5d3db0e5efb0164a05af2043f123539230fb053 100644 (file)
@@ -1,8 +1,7 @@
 /*
- * File...........: linux/drivers/s390/block/dasd_fba.h
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000
+ * Coypright IBM Corp. 1999, 2000
  *
  */
 
index 19a1ff03d65ef25c5320585c04064916827a41bb..f64921756ad610375134b3b59f13bbdb5d9906af 100644 (file)
@@ -1,11 +1,10 @@
 /*
- * File...........: linux/drivers/s390/block/dasd_genhd.c
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  *                 Horst Hummel <Horst.Hummel@de.ibm.com>
  *                 Carsten Otte <Cotte@de.ibm.com>
  *                 Martin Schwidefsky <schwidefsky@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2001
+ * Copyright IBM Corp. 1999, 2001
  *
  * gendisk related functions for the dasd driver.
  *
index c05da00583f06c94f5fbb12bb110c7f5a60875c8..7ff93eea673d009a1636e8de79c9336e52e9647a 100644 (file)
@@ -1,5 +1,4 @@
 /*
- * File...........: linux/drivers/s390/block/dasd_int.h
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  *                 Horst Hummel <Horst.Hummel@de.ibm.com>
  *                 Martin Schwidefsky <schwidefsky@de.ibm.com>
@@ -686,6 +685,7 @@ int dasd_generic_set_offline (struct ccw_device *cdev);
 int dasd_generic_notify(struct ccw_device *, int);
 int dasd_generic_last_path_gone(struct dasd_device *);
 int dasd_generic_path_operational(struct dasd_device *);
+void dasd_generic_shutdown(struct ccw_device *);
 
 void dasd_generic_handle_state_change(struct dasd_device *);
 int dasd_generic_pm_freeze(struct ccw_device *);
index 792c69e78fe2ae6474635680dba3c9af436b554e..cceae70279f6407d96f7249f02939de53405ea03 100644 (file)
@@ -1,11 +1,10 @@
 /*
- * File...........: linux/drivers/s390/block/dasd_ioctl.c
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  *                 Horst Hummel <Horst.Hummel@de.ibm.com>
  *                 Carsten Otte <Cotte@de.ibm.com>
  *                 Martin Schwidefsky <schwidefsky@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2001
+ * Copyright IBM Corp. 1999, 2001
  *
  * i/o controls for the dasd driver.
  */
index e12989fff4ffca7f394124a814a176b82985b941..78ac905a5b7f18c046e121ebc41f1e7f37cc84f6 100644 (file)
@@ -1,11 +1,10 @@
 /*
- * File...........: linux/drivers/s390/block/dasd_proc.c
  * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
  *                 Horst Hummel <Horst.Hummel@de.ibm.com>
  *                 Carsten Otte <Cotte@de.ibm.com>
  *                 Martin Schwidefsky <schwidefsky@de.ibm.com>
  * Bugreports.to..: <Linux390@de.ibm.com>
- * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999-2002
+ * Coypright IBM Corp. 1999, 2002
  *
  * /proc interface for the dasd driver.
  *
index 0e9a309b96691d6ec1c2209bb01a6f351a3a04d6..8de2deb176d716daf043e9c80afd1536043eb94b 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  drivers/s390/char/ctrlchar.c
  *  Unified handling of special chars.
  *
- *    Copyright (C) 2001 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 2001
  *    Author(s): Fritz Elfert <felfert@millenux.com> <elfert@de.ibm.com>
  *
  */
index 935ffa0ea7c6b6dec71bab6ff76f76531a80470b..1a53552f4981dd466a1b38d3b985d84675602e9c 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  drivers/s390/char/ctrlchar.c
  *  Unified handling of special chars.
  *
- *    Copyright (C) 2001 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 2001
  *    Author(s): Fritz Elfert <felfert@millenux.com> <elfert@de.ibm.com>
  *
  */
index 7ef9cfdc17d8ca983b7d735c0599e8e56ba3e68d..01463b052ae740aa56cd6ea816102a34961ed668 100644 (file)
@@ -1,9 +1,8 @@
 /*
- *  drivers/s390/char/keyboard.c
  *    ebcdic keycode functions for s390 console drivers
  *
  *  S390 version
- *    Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 2003
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  */
 
index f682f4e4968041d41237e3b791d1421a544b9095..d0ae2be581910bad288b808fe4e6940c212b4ef8 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  drivers/s390/char/keyboard.h
  *    ebcdic keycode functions for s390 console drivers
  *
- *    Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 2003
  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  */
 
index 3c03c1060be6d3cb12c408c7834936f651050def..444d36183a251c38e2c72fda8084ac33f3bd358b 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/char/sclp_config.c
- *
  *    Copyright IBM Corp. 2007
  *    Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
  */
index 5716487b8c9d378cf0c7b37645abd985d894a687..d70d8c20229c1d3d9a8a4f8a99b8e897591f91f0 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  drivers/s390/char/sclp_cpi.c
  *    SCLP control programm identification
  *
  *    Copyright IBM Corp. 2001, 2007
index bd1b9c9190514188b9c1469e8f2d2fb23a82c606..2acea809e2accf3f6c6078dd7acec6ed5e3cc256 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  drivers/s390/char/sclp_cpi_sys.c
  *    SCLP control program identification sysfs interface
  *
  *    Copyright IBM Corp. 2001, 2007
index deef3e6ff49683a8e89a598b6b87b167972d1f2c..65bb6a99c97f550f6d2cdc11f72e09afecfb7dd0 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  drivers/s390/char/sclp_cpi_sys.h
  *    SCLP control program identification sysfs interface
  *
  *    Copyright IBM Corp. 2007
index ab294d5a534e42386a3056e2fb7e474d781498e2..2553db0fdb5285965df26f1c62d903415c0068fb 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  drivers/s390/char/sclp_ocf.c
  *    SCLP OCF communication parameters sysfs interface
  *
  *    Copyright IBM Corp. 2011
index 69df137310bc5b5a3081969530d042c77bf095da..475e470d9768ea729adc9ba95feee801f942dda1 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  drivers/s390/char/sclp_quiesce.c
  *     signal quiesce handler
  *
- *  (C) Copyright IBM Corp. 1999,2004
+ *  Copyright IBM Corp. 1999, 2004
  *  Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
  *             Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
  */
index 50f7115990fffc3954cc99f24bdd06d1caa4fa7a..6a6f76bf6e3dad4fae79fedc125bb39b7678b79a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Sclp "store data in absolut storage"
  *
- * Copyright IBM Corp. 2003,2007
+ * Copyright IBM Corp. 2003, 2007
  * Author(s): Michael Holzheu
  */
 
index e66a75b3822cbf24f09c0824c87b7f0c81089749..0792c85baafebdefcad5888423ff5b0bc19bee35 100644 (file)
@@ -1,9 +1,8 @@
 /*
- *  drivers/s390/char/sclp_tty.c
  *    SCLP line mode terminal driver.
  *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Peschke <mpeschke@de.ibm.com>
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
  */
index 4b965b22fecd7a24e375059d8cb0aa5b7f5c5d1b..c8773421c31fc25e8d8dc6e40e54992c818ac16a 100644 (file)
@@ -1,9 +1,8 @@
 /*
- *  drivers/s390/char/sclp_tty.h
  *    interface to the SCLP-read/write driver
  *
  *  S390 version
- *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 1999
  *    Author(s): Martin Peschke <mpeschke@de.ibm.com>
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
  */
index bc6c7cfd36b615cac0565203c8a372dbf6d8c82f..c06be6cc2fc3731182f42e96028372ca4044baf4 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  drivers/s390/char/tape.h
  *    tape device driver for 3480/3490E/3590 tapes.
  *
  *  S390 and zSeries version
index b28de80b7ca48194c760e309b7e9db53c2045892..6ae929c024ae3bf811ecabe4986301ac6b9a807b 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  drivers/s390/char/tape_34xx.c
  *    tape device discipline for 3480/3490 tapes.
  *
  *    Copyright IBM Corp. 2001, 2009
index a5c6614b0db259429e034c7817714b3a59c64158..1b0eb49f739c72413c5cdd43835c54141c2464e6 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  drivers/s390/char/tape_3590.c
  *    tape device discipline for 3590 tapes.
  *
  *    Copyright IBM Corp. 2001, 2009
index 4534055f1376aa3bceb0fdbc7505401fad64877c..36b759e89d22d9aca38c7294a03983648b421a74 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  drivers/s390/char/tape_3590.h
  *    tape device discipline for 3590 tapes.
  *
- *    Copyright IBM Corp. 2001,2006
+ *    Copyright IBM Corp. 2001, 2006
  *    Author(s): Stefan Bader <shbader@de.ibm.com>
  *              Michael Holzheu <holzheu@de.ibm.com>
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
index 46886a7578c6d850ef2226b6d661eee2628518c7..2d61db3fc62af5c33c3e84b42624c7ce92da231d 100644 (file)
@@ -1,9 +1,8 @@
 /*
- *  drivers/s390/char/tape_char.c
  *    character device frontend for tape device driver
  *
  *  S390 and zSeries version
- *    Copyright IBM Corp. 2001,2006
+ *    Copyright IBM Corp. 2001, 2006
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *              Michael Holzheu <holzheu@de.ibm.com>
  *              Tuan Ngo-Anh <ngoanh@de.ibm.com>
index 55343df61edde6a583328d1a7faa0c2515491670..54b3c79203f5103964e93b80c73e7cc1f13ae9a6 100644 (file)
@@ -1,6 +1,5 @@
 /*
- * (C) Copyright IBM Corp. 2004
- * tape_class.c
+ * Copyright IBM Corp. 2004
  *
  * Tape class device support
  *
@@ -17,7 +16,7 @@
 
 MODULE_AUTHOR("Stefan Bader <shbader@de.ibm.com>");
 MODULE_DESCRIPTION(
-       "(C) Copyright IBM Corp. 2004   All Rights Reserved.\n"
+       "Copyright IBM Corp. 2004   All Rights Reserved.\n"
        "tape_class.c"
 );
 MODULE_LICENSE("GPL");
index ba2092f741d57876bcba1f3cfc3e5237782c83bb..a332c10d50ad4fb701ebcecd6472af002275679d 100644 (file)
@@ -1,6 +1,5 @@
 /*
- * (C) Copyright IBM Corp. 2004   All Rights Reserved.
- * tape_class.h
+ * Copyright IBM Corp. 2004   All Rights Reserved.
  *
  * Tape class device support
  *
index 585618663ba458bb846e8659630a8df778659b6e..f3b5123faf0822e07d9771fb1c922b5fdfe101b8 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  drivers/s390/char/tape_core.c
  *    basic function of the tape device driver
  *
  *  S390 and zSeries version
index 0ceb37984f7766d3a565a45f3f9b8373ad4b21e7..8733b232a116350c96444414cb7b82ae949b382d 100644 (file)
@@ -1,9 +1,8 @@
 /*
- *  drivers/s390/char/tape.c
  *    tape device driver for S/390 and zSeries tapes.
  *
  *  S390 and zSeries version
- *    Copyright (C) 2001 IBM Corporation
+ *    Copyright IBM Corp. 2001
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *              Michael Holzheu <holzheu@de.ibm.com>
  *              Tuan Ngo-Anh <ngoanh@de.ibm.com>
index e7650170274ac3e3ee12e6f1deca3bdd1e826b95..981a99fd8d4285c2b443f81a320c48f8826871cf 100644 (file)
@@ -1,9 +1,8 @@
 /*
- *  drivers/s390/char/tape_std.c
  *    standard tape device functions for ibm tapes.
  *
  *  S390 and zSeries version
- *    Copyright (C) 2001,2002 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Copyright IBM Corp. 2001, 2002
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *              Michael Holzheu <holzheu@de.ibm.com>
  *              Tuan Ngo-Anh <ngoanh@de.ibm.com>
index 1fc9523593413d7ea1a0ff7e95c49c2817ef82a6..c5816ad9ed7d065880521a089b41d215c5b8fa52 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  drivers/s390/char/tape_std.h
  *    standard tape device functions for ibm tapes.
  *
- *    Copyright (C) IBM Corp. 2001,2006
+ *    Copyright IBM Corp. 2001, 2006
  *    Author(s): Carsten Otte <cotte@de.ibm.com>
  *              Tuan Ngo-Anh <ngoanh@de.ibm.com>
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
index 10ec690197cbfdd4d9d4fd9652128ec0a4ed6dce..1928f3458d10f197bb15b7a75da7d685b33da4e1 100644 (file)
@@ -1,11 +1,10 @@
 /*
- *  drivers/s390/char/tty3270.c
  *    IBM/3270 Driver - tty functions.
  *
  *  Author(s):
  *    Original 3270 Code for 2.4 written by Richard Hitt (UTS Global)
  *    Rewritten for 2.5 by Martin Schwidefsky <schwidefsky@de.ibm.com>
- *     -- Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *     -- Copyright IBM Corp. 2003
  */
 
 #include <linux/module.h>
index 799da57f0390c4b0ba63404b2df78107c85956ff..11141a8f897414f63c1c0602e4b40bdc9fd5b132 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/char/tty3270.h
- *
  *    Copyright IBM Corp. 2007
  *
  */
index 89c03e6b1c0c633d5b3bb8cd051c83ae7aa8d1e4..0fdedadff7bc845f7700c43b1e830542f7948fcf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright IBM Corp. 2004,2010
+ * Copyright IBM Corp. 2004, 2010
  * Interface implementation for communication with the z/VM control program
  *
  * Author(s): Christian Borntraeger <borntraeger@de.ibm.com>
index 6a993948e188c3a0219832757fd51922d8dab665..1e29b04183820cda1c576764478a5b42ff4dd1d6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004, 2005 IBM Corporation
+ * Copyright IBM Corp. 2004, 2005
  * Interface implementation for communication with the z/VM control program
  * Version 1.0
  * Author(s): Christian Borntraeger <cborntra@de.ibm.com>
index 524d988d89dd4c064cef8839370c692930d12352..c131bc40f96268a7a9163681a579a3a0a843dede 100644 (file)
@@ -1,5 +1,4 @@
 /*
- * drivers/s390/char/vmlogrdr.c
  *     character device driver for reading z/VM system service records
  *
  *
@@ -656,10 +655,19 @@ static ssize_t vmlogrdr_recording_status_show(struct device_driver *driver,
        len = strlen(buf);
        return len;
 }
-
-
 static DRIVER_ATTR(recording_status, 0444, vmlogrdr_recording_status_show,
                   NULL);
+static struct attribute *vmlogrdr_drv_attrs[] = {
+       &driver_attr_recording_status.attr,
+       NULL,
+};
+static struct attribute_group vmlogrdr_drv_attr_group = {
+       .attrs = vmlogrdr_drv_attrs,
+};
+static const struct attribute_group *vmlogrdr_drv_attr_groups[] = {
+       &vmlogrdr_drv_attr_group,
+       NULL,
+};
 
 static struct attribute *vmlogrdr_attrs[] = {
        &dev_attr_autopurge.attr,
@@ -668,6 +676,13 @@ static struct attribute *vmlogrdr_attrs[] = {
        &dev_attr_recording.attr,
        NULL,
 };
+static struct attribute_group vmlogrdr_attr_group = {
+       .attrs = vmlogrdr_attrs,
+};
+static const struct attribute_group *vmlogrdr_attr_groups[] = {
+       &vmlogrdr_attr_group,
+       NULL,
+};
 
 static int vmlogrdr_pm_prepare(struct device *dev)
 {
@@ -692,18 +707,14 @@ static const struct dev_pm_ops vmlogrdr_pm_ops = {
        .prepare = vmlogrdr_pm_prepare,
 };
 
-static struct attribute_group vmlogrdr_attr_group = {
-       .attrs = vmlogrdr_attrs,
-};
-
 static struct class *vmlogrdr_class;
 static struct device_driver vmlogrdr_driver = {
        .name = "vmlogrdr",
        .bus  = &iucv_bus,
        .pm = &vmlogrdr_pm_ops,
+       .groups = vmlogrdr_drv_attr_groups,
 };
 
-
 static int vmlogrdr_register_driver(void)
 {
        int ret;
@@ -717,21 +728,14 @@ static int vmlogrdr_register_driver(void)
        if (ret)
                goto out_iucv;
 
-       ret = driver_create_file(&vmlogrdr_driver,
-                                &driver_attr_recording_status);
-       if (ret)
-               goto out_driver;
-
        vmlogrdr_class = class_create(THIS_MODULE, "vmlogrdr");
        if (IS_ERR(vmlogrdr_class)) {
                ret = PTR_ERR(vmlogrdr_class);
                vmlogrdr_class = NULL;
-               goto out_attr;
+               goto out_driver;
        }
        return 0;
 
-out_attr:
-       driver_remove_file(&vmlogrdr_driver, &driver_attr_recording_status);
 out_driver:
        driver_unregister(&vmlogrdr_driver);
 out_iucv:
@@ -745,7 +749,6 @@ static void vmlogrdr_unregister_driver(void)
 {
        class_destroy(vmlogrdr_class);
        vmlogrdr_class = NULL;
-       driver_remove_file(&vmlogrdr_driver, &driver_attr_recording_status);
        driver_unregister(&vmlogrdr_driver);
        iucv_unregister(&vmlogrdr_iucv_handler, 1);
 }
@@ -762,6 +765,7 @@ static int vmlogrdr_register_device(struct vmlogrdr_priv_t *priv)
                dev->bus = &iucv_bus;
                dev->parent = iucv_root;
                dev->driver = &vmlogrdr_driver;
+               dev->groups = vmlogrdr_attr_groups;
                dev_set_drvdata(dev, priv);
                /*
                 * The release function could be called after the
@@ -779,11 +783,6 @@ static int vmlogrdr_register_device(struct vmlogrdr_priv_t *priv)
                return ret;
        }
 
-       ret = sysfs_create_group(&dev->kobj, &vmlogrdr_attr_group);
-       if (ret) {
-               device_unregister(dev);
-               return ret;
-       }
        priv->class_device = device_create(vmlogrdr_class, dev,
                                           MKDEV(vmlogrdr_major,
                                                 priv->minor_num),
@@ -791,7 +790,6 @@ static int vmlogrdr_register_device(struct vmlogrdr_priv_t *priv)
        if (IS_ERR(priv->class_device)) {
                ret = PTR_ERR(priv->class_device);
                priv->class_device=NULL;
-               sysfs_remove_group(&dev->kobj, &vmlogrdr_attr_group);
                device_unregister(dev);
                return ret;
        }
@@ -804,7 +802,6 @@ static int vmlogrdr_unregister_device(struct vmlogrdr_priv_t *priv)
 {
        device_destroy(vmlogrdr_class, MKDEV(vmlogrdr_major, priv->minor_num));
        if (priv->device != NULL) {
-               sysfs_remove_group(&priv->device->kobj, &vmlogrdr_attr_group);
                device_unregister(priv->device);
                priv->device=NULL;
        }
index 2211277a10793201936b3c7253958149972723ec..e9b72311e2549a370f1d213c9a8277e7c233186f 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Watchdog implementation based on z/VM Watchdog Timer API
  *
- * Copyright IBM Corp. 2004,2009
+ * Copyright IBM Corp. 2004, 2009
  *
  * The user space watchdog daemon can use this driver as
  * /dev/vmwatchdog to have z/VM execute the specified CP
index 3303d66b27941c7d1e51e5031f6867c25fbbb8a5..e3b9308b0fe370edf21ec866704dbcb68e08e90a 100644 (file)
@@ -5,7 +5,7 @@
  *
  * For more information please refer to Documentation/s390/zfcpdump.txt
  *
- * Copyright IBM Corp. 2003,2008
+ * Copyright IBM Corp. 2003, 2008
  * Author(s): Michael Holzheu
  */
 
index 65d2e769dfa16123ff0a50593ef0797ff670e8f5..bc10220f684700e2909ed45a8ece94015d1b44ba 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  drivers/s390/cio/airq.c
  *    Support for adapter interruptions
  *
- *    Copyright IBM Corp. 1999,2007
+ *    Copyright IBM Corp. 1999, 2007
  *    Author(s): Ingo Adlung <adlung@de.ibm.com>
  *              Cornelia Huck <cornelia.huck@de.ibm.com>
  *              Arnd Bergmann <arndb@de.ibm.com>
index 08c66035dd19036814b1ff051e917e93165eca85..2d2a966a3b39cdc0cf267b060d1f64285ef4ee84 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  drivers/s390/cio/blacklist.c
  *   S/390 common I/O routines -- blacklisting of specific devices
  *
- *    Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH,
- *                           IBM Corporation
+ *    Copyright IBM Corp. 1999, 2002
  *    Author(s): Ingo Adlung (adlung@de.ibm.com)
  *              Cornelia Huck (cornelia.huck@de.ibm.com)
  *              Arnd Bergmann (arndb@de.ibm.com)
index e792436c92701fc684fc830c0656666c5a73c95c..50ad5fdd815dca03e53f62c1c0798738d375f9e0 100644 (file)
@@ -1,7 +1,5 @@
 /*
- *  drivers/s390/cio/chp.c
- *
- *    Copyright IBM Corp. 1999,2010
+ *    Copyright IBM Corp. 1999, 2010
  *    Author(s): Cornelia Huck (cornelia.huck@de.ibm.com)
  *              Arnd Bergmann (arndb@de.ibm.com)
  *              Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
@@ -362,10 +360,13 @@ static struct attribute *chp_attrs[] = {
        &dev_attr_shared.attr,
        NULL,
 };
-
 static struct attribute_group chp_attr_group = {
        .attrs = chp_attrs,
 };
+static const struct attribute_group *chp_attr_groups[] = {
+       &chp_attr_group,
+       NULL,
+};
 
 static void chp_release(struct device *dev)
 {
@@ -397,6 +398,7 @@ int chp_new(struct chp_id chpid)
        chp->chpid = chpid;
        chp->state = 1;
        chp->dev.parent = &channel_subsystems[chpid.cssid]->device;
+       chp->dev.groups = chp_attr_groups;
        chp->dev.release = chp_release;
        mutex_init(&chp->lock);
 
@@ -426,16 +428,10 @@ int chp_new(struct chp_id chpid)
                put_device(&chp->dev);
                goto out;
        }
-       ret = sysfs_create_group(&chp->dev.kobj, &chp_attr_group);
-       if (ret) {
-               device_unregister(&chp->dev);
-               goto out;
-       }
        mutex_lock(&channel_subsystems[chpid.cssid]->mutex);
        if (channel_subsystems[chpid.cssid]->cm_enabled) {
                ret = chp_add_cmg_attr(chp);
                if (ret) {
-                       sysfs_remove_group(&chp->dev.kobj, &chp_attr_group);
                        device_unregister(&chp->dev);
                        mutex_unlock(&channel_subsystems[chpid.cssid]->mutex);
                        goto out;
index 12b4903d6fe373f171b83a8a8a7d9ffc2e9a8b26..e1399dbee83430510ff6266e0bb02957916848cf 100644 (file)
@@ -1,7 +1,5 @@
 /*
- *  drivers/s390/cio/chp.h
- *
- *    Copyright IBM Corp. 2007,2010
+ *    Copyright IBM Corp. 2007, 2010
  *    Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
  */
 
index a84631a7391d3ed50c680b939129d159fc25daa3..cfe0c087fe5cc915859265bb59016076e120d84c 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  drivers/s390/cio/chsc.c
  *   S/390 common I/O routines -- channel subsystem call
  *
- *    Copyright IBM Corp. 1999,2010
+ *    Copyright IBM Corp. 1999, 2010
  *    Author(s): Ingo Adlung (adlung@de.ibm.com)
  *              Cornelia Huck (cornelia.huck@de.ibm.com)
  *              Arnd Bergmann (arndb@de.ibm.com)
index a6ddaed8793d3e43896c1758a64aa684b54ee0eb..33d1ef7035936732ec44c32c386be511294fe1f0 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  drivers/s390/cio/cio.c
  *   S/390 common I/O routines -- low level i/o calls
  *
- *    Copyright IBM Corp. 1999,2008
+ *    Copyright IBM Corp. 1999, 2008
  *    Author(s): Ingo Adlung (adlung@de.ibm.com)
  *              Cornelia Huck (cornelia.huck@de.ibm.com)
  *              Arnd Bergmann (arndb@de.ibm.com)
index 204ca728e7fd8c097591f1b81541238a57681814..c9fc61c0a8661702faf5ee10f89a65b4d1b59a83 100644 (file)
@@ -1,9 +1,7 @@
 /*
- * linux/drivers/s390/cio/cmf.c
- *
  * Linux on zSeries Channel Measurement Facility support
  *
- * Copyright 2000,2006 IBM Corporation
+ * Copyright IBM Corp. 2000, 2006
  *
  * Authors: Arnd Bergmann <arndb@de.ibm.com>
  *         Cornelia Huck <cornelia.huck@de.ibm.com>
@@ -1341,7 +1339,7 @@ module_init(init_cmf);
 MODULE_AUTHOR("Arnd Bergmann <arndb@de.ibm.com>");
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("channel measurement facility base driver\n"
-                  "Copyright 2003 IBM Corporation\n");
+                  "Copyright IBM Corp. 2003\n");
 
 EXPORT_SYMBOL_GPL(enable_cmf);
 EXPORT_SYMBOL_GPL(disable_cmf);
index d0a2dff43fb47eaf95d5097ad42312ddf46e24c1..0f8a25f98b10629de82b87591e3e669175cf4526 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *   Channel report handling code
  *
- *    Copyright IBM Corp. 2000,2009
+ *    Copyright IBM Corp. 2000, 2009
  *    Author(s): Ingo Adlung <adlung@de.ibm.com>,
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>,
  *              Cornelia Huck <cornelia.huck@de.ibm.com>,
index f8f952d520457232f23f92272f7891bb5a03fecf..ed25c8740a9ce4b0bb8e8334a32b72abc08655ae 100644 (file)
@@ -1,8 +1,7 @@
 /*
- *  drivers/s390/cio/device.c
  *  bus driver for ccw devices
  *
- *    Copyright IBM Corp. 2002,2008
+ *    Copyright IBM Corp. 2002, 2008
  *    Author(s): Arnd Bergmann (arndb@de.ibm.com)
  *              Cornelia Huck (cornelia.huck@de.ibm.com)
  *              Martin Schwidefsky (schwidefsky@de.ibm.com)
index 1b853513c891ca2f010f8703b110f49c6f65afb3..1bb1d00095afb2c793483c46d2f759c18459f552 100644 (file)
@@ -1,8 +1,7 @@
 /*
- * drivers/s390/cio/device_fsm.c
  * finite state machine for device handling
  *
- *    Copyright IBM Corp. 2002,2008
+ *    Copyright IBM Corp. 2002, 2008
  *    Author(s): Cornelia Huck (cornelia.huck@de.ibm.com)
  *              Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
index 78a0b43862c5feb41c0888812c978f686f5f4891..d4fa30541a33bc48f4c318f113ca4e9a5b3d56d3 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  CCW device SENSE ID I/O handling.
  *
- *    Copyright IBM Corp. 2002,2009
+ *    Copyright IBM Corp. 2002, 2009
  *    Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
  *              Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
index 07a4fd29f0968f5e7bb485761a1b340525a9eeac..368368fe04b27fa29a4506ae87177afa9e8e05a9 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  CCW device PGID and path verification I/O handling.
  *
- *    Copyright IBM Corp. 2002,2009
+ *    Copyright IBM Corp. 2002, 2009
  *    Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
  *              Martin Schwidefsky <schwidefsky@de.ibm.com>
  *              Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
index 66d8066ef22a0ccc5dc8ae3911281209dd18fa80..15b56a15db151cf4cfdfbc1e251a57400fb0706c 100644 (file)
@@ -1,8 +1,5 @@
 /*
- * drivers/s390/cio/device_status.c
- *
- *    Copyright (C) 2002 IBM Deutschland Entwicklung GmbH,
- *                      IBM Corporation
+ *    Copyright IBM Corp. 2002
  *    Author(s): Cornelia Huck (cornelia.huck@de.ibm.com)
  *              Martin Schwidefsky (schwidefsky@de.ibm.com)
  *
index 4d10981c7cc102a3ffe1bf8c107cb08d5280d212..e6d5f8c49524d05f78f6548a2937b1747bd7ffe6 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/cio/idset.c
- *
  *    Copyright IBM Corp. 2007
  *    Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
  */
index 7543da4529f9f05ded52997b45dbbc34cbaf420d..3d943f03591e1b2180cc6fdd9c92e54c99a0d0e4 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/cio/idset.h
- *
  *    Copyright IBM Corp. 2007
  *    Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
  */
index b962ffbc0803dead8c7efb3e49bd4f5d903bc6a4..5132554d7917f0994f543aea947dcdfdcdcb17d4 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * linux/drivers/s390/cio/qdio.h
- *
- * Copyright 2000,2009 IBM Corp.
+ * Copyright IBM Corp. 2000, 2009
  * Author(s): Utz Bacher <utz.bacher@de.ibm.com>
  *           Jan Glauber <jang@linux.vnet.ibm.com>
  */
index 29021f4e96b6409bc5dffc12b9717871a652bb49..e6e0d31c02acea47a02a8b4a8a7746700de930fb 100644 (file)
@@ -1,7 +1,5 @@
 /*
- *  drivers/s390/cio/qdio_debug.c
- *
- *  Copyright IBM Corp. 2008,2009
+ *  Copyright IBM Corp. 2008, 2009
  *
  *  Author: Jan Glauber (jang@linux.vnet.ibm.com)
  */
index 5d70bd162ae9598cc078fbc5c948b4d38fe28d74..e1f646800ddb7e7cc1ae6a6daa0a03f766ce3a4e 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/cio/qdio_debug.h
- *
  *  Copyright IBM Corp. 2008
  *
  *  Author: Jan Glauber (jang@linux.vnet.ibm.com)
index 7493efafa0d5a69b8ad674ba38bc47d42d097c8b..e06fa03ea1e456bac69ba5f84e634ebbd9f645ce 100644 (file)
@@ -1,9 +1,7 @@
 /*
- * linux/drivers/s390/cio/qdio_main.c
- *
  * Linux for s390 qdio support, buffer handling, qdio API and module support.
  *
- * Copyright 2000,2008 IBM Corp.
+ * Copyright IBM Corp. 2000, 2008
  * Author(s): Utz Bacher <utz.bacher@de.ibm.com>
  *           Jan Glauber <jang@linux.vnet.ibm.com>
  * 2.6 cio integration by Cornelia Huck <cornelia.huck@de.ibm.com>
index ecf12f0aca7b2052c5d8d127bba3a73769a2270e..6c973db149832f13ce9edd9dc38152991054c889 100644 (file)
@@ -1,9 +1,7 @@
 /*
- * driver/s390/cio/qdio_setup.c
- *
  * qdio queue initialization
  *
- * Copyright (C) IBM Corp. 2008
+ * Copyright IBM Corp. 2008
  * Author(s): Jan Glauber <jang@linux.vnet.ibm.com>
  */
 #include <linux/kernel.h>
index 011eadea3ee422fabb85ef24caa784401682ff89..2e060088fa87872cb9a9c45edd847e999c54bf6e 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * linux/drivers/s390/cio/thinint_qdio.c
- *
- * Copyright 2000,2009 IBM Corp.
+ * Copyright IBM Corp. 2000, 2009
  * Author(s): Utz Bacher <utz.bacher@de.ibm.com>
  *           Cornelia Huck <cornelia.huck@de.ibm.com>
  *           Jan Glauber <jang@linux.vnet.ibm.com>
index b987d4619586b0d0337db02691a67a2e1a97a043..ae258a4b4e5ea8866333fec3204dba7513fbda5c 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * linux/drivers/s390/crypto/ap_bus.c
- *
- * Copyright (C) 2006 IBM Corporation
+ * Copyright IBM Corp. 2006
  * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
  *           Martin Schwidefsky <schwidefsky@de.ibm.com>
  *           Ralph Wuerthner <rwuerthn@de.ibm.com>
@@ -70,7 +68,7 @@ static int ap_select_domain(void);
  */
 MODULE_AUTHOR("IBM Corporation");
 MODULE_DESCRIPTION("Adjunct Processor Bus driver, "
-                  "Copyright 2006 IBM Corporation");
+                  "Copyright IBM Corp. 2006");
 MODULE_LICENSE("GPL");
 
 /*
@@ -338,6 +336,12 @@ static int ap_queue_enable_interruption(ap_qid_t qid, void *ind)
                        break;
                case AP_RESPONSE_RESET_IN_PROGRESS:
                case AP_RESPONSE_BUSY:
+                       if (i < AP_MAX_RESET - 1) {
+                               udelay(5);
+                               status = ap_queue_interruption_control(qid,
+                                                                      ind);
+                               continue;
+                       }
                        break;
                case AP_RESPONSE_Q_NOT_AVAIL:
                case AP_RESPONSE_DECONFIGURED:
index 726fc65809d84a3d2437327496ded59c5d4e81e9..52d61995af889a5cf3f9b2d9a29a200272ceb3a7 100644 (file)
@@ -1,7 +1,5 @@
 /*
- * linux/drivers/s390/crypto/ap_bus.h
- *
- * Copyright (C) 2006 IBM Corporation
+ * Copyright IBM Corp. 2006
  * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
  *           Martin Schwidefsky <schwidefsky@de.ibm.com>
  *           Ralph Wuerthner <rwuerthn@de.ibm.com>
index 88523208d47daeea4c4519b9637e1bd186e8ccab..2f94132246a1b1f766feecb8bc3c6986d56e9564 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  linux/drivers/s390/crypto/zcrypt_api.c
- *
  *  zcrypt 2.1.0
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *            Cornelia Huck <cornelia.huck@de.ibm.com>
@@ -47,7 +45,7 @@
  */
 MODULE_AUTHOR("IBM Corporation");
 MODULE_DESCRIPTION("Cryptographic Coprocessor interface, "
-                  "Copyright 2001, 2006 IBM Corporation");
+                  "Copyright IBM Corp. 2001, 2006");
 MODULE_LICENSE("GPL");
 
 static DEFINE_SPINLOCK(zcrypt_device_lock);
index 9688f3985b072ebec20d049e73bfb6d49bfc3a46..7a32c4bc8ef914c9d175c4dd5823b6a07495eb52 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  linux/drivers/s390/crypto/zcrypt_api.h
- *
  *  zcrypt 2.1.0
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *            Cornelia Huck <cornelia.huck@de.ibm.com>
index ed82f2f59b1717cc19a785cd2489024edac35f56..1f42f103c761d460426b07b8c8021a673bcb1b7e 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  linux/drivers/s390/crypto/zcrypt_cca_key.h
- *
  *  zcrypt 2.1.0
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
index 46812440425acca842b3d5837e81481cfd526bfc..744c668f586c56b749ca55ed9c9d40af206f9169 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  linux/drivers/s390/crypto/zcrypt_cex2a.c
- *
  *  zcrypt 2.1.0
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
@@ -66,7 +64,7 @@ static struct ap_device_id zcrypt_cex2a_ids[] = {
 MODULE_DEVICE_TABLE(ap, zcrypt_cex2a_ids);
 MODULE_AUTHOR("IBM Corporation");
 MODULE_DESCRIPTION("CEX2A Cryptographic Coprocessor device driver, "
-                  "Copyright 2001, 2006 IBM Corporation");
+                  "Copyright IBM Corp. 2001, 2006");
 MODULE_LICENSE("GPL");
 
 static int zcrypt_cex2a_probe(struct ap_device *ap_dev);
index 0350665810cf53032c9e172210887b5f480b73c2..0dce4b9af184114ecdc13bf3741ab167dfb402d8 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  linux/drivers/s390/crypto/zcrypt_cex2a.h
- *
  *  zcrypt 2.1.0
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
index 03ba27f05f9203931a6b381bfd07ba1af3ddefa7..0965e2626d18aa671bc34bfb6a3975923702af1f 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  linux/drivers/s390/crypto/zcrypt_error.h
- *
  *  zcrypt 2.1.0
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
index ad7951c21b794dff585eec537bd01c87b395ed23..f2b71d8df01f0c1e42e75bd7b0f9786bbf881cae 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  linux/drivers/s390/crypto/zcrypt_pcica.c
- *
  *  zcrypt 2.1.0
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
@@ -56,7 +54,7 @@ static struct ap_device_id zcrypt_pcica_ids[] = {
 MODULE_DEVICE_TABLE(ap, zcrypt_pcica_ids);
 MODULE_AUTHOR("IBM Corporation");
 MODULE_DESCRIPTION("PCICA Cryptographic Coprocessor device driver, "
-                  "Copyright 2001, 2006 IBM Corporation");
+                  "Copyright IBM Corp. 2001, 2006");
 MODULE_LICENSE("GPL");
 
 static int zcrypt_pcica_probe(struct ap_device *ap_dev);
index 3be11187f6df35feda6c095802ddf38ffc6cc8e4..9a59155cad517cff088e9d00708f4694de5b451c 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  linux/drivers/s390/crypto/zcrypt_pcica.h
- *
  *  zcrypt 2.1.0
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
index e5dd335fda53b3e46f36faed6d49e717ce5765ee..0d90a4334055efcc22ae73a290c53d83fcee8530 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  linux/drivers/s390/crypto/zcrypt_pcicc.c
- *
  *  zcrypt 2.1.0
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
@@ -68,7 +66,7 @@ static struct ap_device_id zcrypt_pcicc_ids[] = {
 MODULE_DEVICE_TABLE(ap, zcrypt_pcicc_ids);
 MODULE_AUTHOR("IBM Corporation");
 MODULE_DESCRIPTION("PCICC Cryptographic Coprocessor device driver, "
-                  "Copyright 2001, 2006 IBM Corporation");
+                  "Copyright IBM Corp. 2001, 2006");
 MODULE_LICENSE("GPL");
 
 static int zcrypt_pcicc_probe(struct ap_device *ap_dev);
index 6d4454846c8f9e4bcc0944f85fc7fcb065999c5d..7fe27e15075b851d01876e88e382902964498e3c 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  linux/drivers/s390/crypto/zcrypt_pcicc.h
- *
  *  zcrypt 2.1.0
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
index f7cc43401816d503e33ec3fb75b628c60b9ad400..ccb4f8b60c750f9e7b636c4c5e5f900d523b6321 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  linux/drivers/s390/crypto/zcrypt_pcixcc.c
- *
  *  zcrypt 2.1.0
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
@@ -78,7 +76,7 @@ static struct ap_device_id zcrypt_pcixcc_ids[] = {
 MODULE_DEVICE_TABLE(ap, zcrypt_pcixcc_ids);
 MODULE_AUTHOR("IBM Corporation");
 MODULE_DESCRIPTION("PCIXCC Cryptographic Coprocessor device driver, "
-                  "Copyright 2001, 2006 IBM Corporation");
+                  "Copyright IBM Corp. 2001, 2006");
 MODULE_LICENSE("GPL");
 
 static int zcrypt_pcixcc_probe(struct ap_device *ap_dev);
index 8cb7d7a6973b4e19c89f10a0d18fc9bb797f2cf0..c7cdf599e46b1a67230e489ff10bb3dc9a2da776 100644 (file)
@@ -1,9 +1,7 @@
 /*
- *  linux/drivers/s390/crypto/zcrypt_pcixcc.h
- *
  *  zcrypt 2.1.0
  *
- *  Copyright (C)  2001, 2006 IBM Corporation
+ *  Copyright IBM Corp. 2001, 2006
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
index d74e9ae6dfb3e55407e27bfb5d6d997da1c845f1..b67ee04082677ad46d1495effb234d7a7c1df0d9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * kvm_virtio.c - virtio for kvm on s390
+ * virtio for kvm on s390
  *
  * Copyright IBM Corp. 2008
  *
index 6b1ff90d2f007b9d12cdc29e94ed929a064d1f52..a0a4afe537d079038e02b74e7606b66b0cedcee4 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *  drivers/s390/net/claw.c
  *    ESCON CLAW network driver
  *
  *  Linux for zSeries version
@@ -3380,5 +3379,5 @@ module_exit(claw_cleanup);
 
 MODULE_AUTHOR("Andy Richter <richtera@us.ibm.com>");
 MODULE_DESCRIPTION("Linux for System z CLAW Driver\n" \
-                       "Copyright 2000,2008 IBM Corporation\n");
+                       "Copyright IBM Corp. 2000, 2008\n");
 MODULE_LICENSE("GPL");
index d962fd741a2327cc68c33fea9d36bd4437057104..6514e1cb3f1cf1b21cc7bd2d4422ca48fe2b7d47 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *     drivers/s390/net/ctcm_dbug.c
- *
  *     Copyright IBM Corp. 2001, 2007
  *     Authors:        Peter Tiedemann (ptiedem@de.ibm.com)
  *
index 26966d0b9abd1191e3413afa7ca3bcbe42848ddc..47bf0501995e8cfa3834ff18b6e817a45d80e19a 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *     drivers/s390/net/ctcm_dbug.h
- *
  *     Copyright IBM Corp. 2001, 2007
  *     Authors:        Peter Tiedemann (ptiedem@de.ibm.com)
  *
index a69766900a17badf80952614a89182a915aba7fa..d4ade9e92fbbd4fa97f9ce1acf4043a7b91b4f65 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * drivers/s390/net/ctcm_fsms.c
- *
  * Copyright IBM Corp. 2001, 2007
  * Authors:    Fritz Elfert (felfert@millenux.com)
  *             Peter Tiedemann (ptiedem@de.ibm.com)
index 046d077fabbb3e02ee7470a5a2f5ef245ac0b9a8..c963d04799c0a21393bc77acc50f87f176358d2b 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * drivers/s390/net/ctcm_fsms.h
- *
  * Copyright IBM Corp. 2001, 2007
  * Authors:    Fritz Elfert (felfert@millenux.com)
  *             Peter Tiedemann (ptiedem@de.ibm.com)
index 3cd25544a27a1ba82fd4549cb49b2320f99d24a9..5227e5734a9d152e45a2b4920a13f92b7354051e 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * drivers/s390/net/ctcm_main.c
- *
  * Copyright IBM Corp. 2001, 2009
  * Author(s):
  *     Original CTC driver(s):
index b9056a55d9950b113d1446422fdec5d955d07c29..477c933685f38f4abdba98a557aca20d43b7b7ef 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *     drivers/s390/net/ctcm_main.h
- *
  *     Copyright IBM Corp. 2001, 2007
  *     Authors:        Fritz Elfert (felfert@millenux.com)
  *                     Peter Tiedemann (ptiedem@de.ibm.com)
index ac7975b7a837a9a3db240787d162e57d0fe26e17..05b734a2b5b7ae09f33f2a7307948e232e4f253f 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *     drivers/s390/net/ctcm_mpc.c
- *
  *     Copyright IBM Corp. 2004, 2007
  *     Authors:        Belinda Thompson (belindat@us.ibm.com)
  *                     Andy Richter (richtera@us.ibm.com)
index 1fa07b0c11c010d6de20ceeecd80c030d22cca3c..bd1b1cc54ffa0c7cc8fe1a8ddd5083ad58a57afb 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * drivers/s390/net/ctcm_mpc.h
- *
  * Copyright IBM Corp. 2007
  * Authors:    Peter Tiedemann (ptiedem@de.ibm.com)
  *
index 0c27ae726475cb253dd3dee10ec73ad91873017d..985b5dcbdac8b348dc6394898ad55bcddf9b8aa9 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * drivers/s390/net/ctcm_sysfs.c
- *
  * Copyright IBM Corp. 2007, 2007
  * Authors:    Peter Tiedemann (ptiedem@de.ibm.com)
  *
index 06e8f31ff3dc7854a67c559d694da6cc9df865dc..fa7adad6f9ba07f6e1948d775898866fbfe9d019 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/net/qeth_core.h
- *
  *    Copyright IBM Corp. 2007
  *    Author(s): Utz Bacher <utz.bacher@de.ibm.com>,
  *              Frank Pavlic <fpavlic@de.ibm.com>,
index e118e1e1e1c12b908b50a3b38f1157c7e1bcd68b..7a8b09612c41ba141c9d17812549d23f5873d6c3 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/net/qeth_core_main.c
- *
  *    Copyright IBM Corp. 2007, 2009
  *    Author(s): Utz Bacher <utz.bacher@de.ibm.com>,
  *              Frank Pavlic <fpavlic@de.ibm.com>,
index 7fab6544def66b02f9756fe67a6d0a7a529077b5..5cebfddb86bdfbb40b2a0cfa6f212e5d0656cf95 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/net/qeth_core_mpc.c
- *
  *    Copyright IBM Corp. 2007
  *    Author(s): Frank Pavlic <fpavlic@de.ibm.com>,
  *              Thomas Spatzier <tspat@de.ibm.com>,
index a11b30c384236f4444b3c04bf39e3de704348ac7..3690bbf2cb3cf3699abadeb4f2aa0703e11c2ce2 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/net/qeth_core_mpc.h
- *
  *    Copyright IBM Corp. 2007
  *    Author(s): Frank Pavlic <fpavlic@de.ibm.com>,
  *              Thomas Spatzier <tspat@de.ibm.com>,
index f163af575c48c6f34139e03561d6e3938f38f14c..9655dc0ea0ec7187c65de00eb30399bf13ffe1fb 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/net/qeth_core_sys.c
- *
  *    Copyright IBM Corp. 2007
  *    Author(s): Utz Bacher <utz.bacher@de.ibm.com>,
  *              Frank Pavlic <fpavlic@de.ibm.com>,
index 426986518e96e039c14c503875747b36b436d239..d86f645a76da07c516f008d332bcacd2cb2c135c 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/net/qeth_l2_main.c
- *
  *    Copyright IBM Corp. 2007, 2009
  *    Author(s): Utz Bacher <utz.bacher@de.ibm.com>,
  *              Frank Pavlic <fpavlic@de.ibm.com>,
index e367315a63f0e12890447eb0941d4c68aa6cd7d3..29c1c00e3a0f3dcdb826e0e31c33bde2ceb88dcc 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/net/qeth_l3.h
- *
  *    Copyright IBM Corp. 2007
  *    Author(s): Utz Bacher <utz.bacher@de.ibm.com>,
  *              Frank Pavlic <fpavlic@de.ibm.com>,
index 7be5e9775691b5a4f227bb06ef6a10226b118dbf..f0045ca8a766484355df1b78cf1eba2e05c6df6b 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/net/qeth_l3_main.c
- *
  *    Copyright IBM Corp. 2007, 2009
  *    Author(s): Utz Bacher <utz.bacher@de.ibm.com>,
  *              Frank Pavlic <fpavlic@de.ibm.com>,
index 4cafedf950ada18f4bb18d1dd3f72ce33611f987..ebc3794862675e591b45395f29cc0f6cf4c5e801 100644 (file)
@@ -1,6 +1,4 @@
 /*
- *  drivers/s390/net/qeth_l3_sys.c
- *
  *    Copyright IBM Corp. 2007
  *    Author(s): Utz Bacher <utz.bacher@de.ibm.com>,
  *              Frank Pavlic <fpavlic@de.ibm.com>,
index 149a1151608d4f60ade750da2102f1aa2961bfb6..45bc925928ca724fd6dffbf0870fccb81694b59c 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * IUCV special message driver
  *
- * Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ * Copyright IBM Corp. 2003
  * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
  */
 
index 08601810966252a1b2815f600724c0c90785fb2b..aff8621de8069b813014a550c468a8bf8d78937b 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Module interface and handling of zfcp data structures.
  *
- * Copyright IBM Corporation 2002, 2010
+ * Copyright IBM Corp. 2002, 2010
  */
 
 /*
index 96f13ad88123408b51698023a977e90eb3261d97..e37f04551948907be4be7a6da626b37263b09c1b 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Registration and callback for the s390 common I/O layer.
  *
- * Copyright IBM Corporation 2002, 2010
+ * Copyright IBM Corp. 2002, 2010
  */
 
 #define KMSG_COMPONENT "zfcp"
index fab2c2592a9744e400971b73c264fd9f2c3ab7b9..fbd8b4db6025772840ec0af0911f004be0548fe0 100644 (file)
@@ -5,7 +5,7 @@
  * Access Control Lists / Control File Data Channel;
  * handling of response code and states for ports and LUNs.
  *
- * Copyright IBM Corporation 2008, 2010
+ * Copyright IBM Corp. 2008, 2010
  */
 
 #define KMSG_COMPONENT "zfcp"
index a9a816e4aa55f5c2ad8eadfe4302cba48609e421..3c1d22097ad0b66296e730463b01a19775a18977 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Debug traces for zfcp.
  *
- * Copyright IBM Corporation 2002, 2010
+ * Copyright IBM Corp. 2002, 2010
  */
 
 #define KMSG_COMPONENT "zfcp"
index ed5d921e82cd18448a09a16a502724eae4f6ac76..2955e1a3deaf88bcff0140ea3c9e571a8f6e659a 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Global definitions for the zfcp device driver.
  *
- * Copyright IBM Corporation 2002, 2010
+ * Copyright IBM Corp. 2002, 2010
  */
 
 #ifndef ZFCP_DEF_H
index e1b4f800e2260498e30536add0b6bd1c41061a42..92d3df6ac8ba9e6ef37ba3e24b503e6b12217ef2 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Error Recovery Procedures (ERP).
  *
- * Copyright IBM Corporation 2002, 2010
+ * Copyright IBM Corp. 2002, 2010
  */
 
 #define KMSG_COMPONENT "zfcp"
index 2302e1cfb76cb5bec677b849f139494d6028011b..36f422770ff54da358879ab9571e1c3ecd79112b 100644 (file)
@@ -3,7 +3,7 @@
  *
  * External function declarations.
  *
- * Copyright IBM Corporation 2002, 2010
+ * Copyright IBM Corp. 2002, 2010
  */
 
 #ifndef ZFCP_EXT_H
index 297e6b71ce9cf64bb4982159bc00452911dec2fa..88688a80b2c11334bcc99686634bee964858b816 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Fibre Channel related functions for the zfcp device driver.
  *
- * Copyright IBM Corporation 2008, 2010
+ * Copyright IBM Corp. 2008, 2010
  */
 
 #define KMSG_COMPONENT "zfcp"
index 4561f3bf7300e6b74936d7c696960e1082b61f1b..b1d2024ed51367ef4c892a62ed00ecab267ed74b 100644 (file)
@@ -4,7 +4,7 @@
  * Fibre Channel related definitions and inline functions for the zfcp
  * device driver
  *
- * Copyright IBM Corporation 2009
+ * Copyright IBM Corp. 2009
  */
 
 #ifndef ZFCP_FC_H
index e9a787e2e6a59ba46fe7fa70f7b8f719cc95ef04..e1c1efc2c5a0f35158ec402360c78ae87b80c681 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Implementation of FSF commands.
  *
- * Copyright IBM Corporation 2002, 2010
+ * Copyright IBM Corp. 2002, 2010
  */
 
 #define KMSG_COMPONENT "zfcp"
index db8c85382dca7d97735c25af716e9970cc92d23a..5e795b86931b0bf4ab873164680cb23a4b93e52c 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Interface to the FSF support functions.
  *
- * Copyright IBM Corporation 2002, 2010
+ * Copyright IBM Corp. 2002, 2010
  */
 
 #ifndef FSF_H
index e14da5751d32674fa089fe6ffae6ed93da843262..b9fffc8d94a76daaf6b7faadbcd85194cb555094 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Setup and helper functions to access QDIO.
  *
- * Copyright IBM Corporation 2002, 2010
+ * Copyright IBM Corp. 2002, 2010
  */
 
 #define KMSG_COMPONENT "zfcp"
index 8ac7f5342d29d807e815e939b54f68f3c8f38fca..497cd379b0d10b065940e096ee1b60491c48ac44 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Header file for zfcp qdio interface
  *
- * Copyright IBM Corporation 2010
+ * Copyright IBM Corp. 2010
  */
 
 #ifndef ZFCP_QDIO_H
index a72d1b730abab480a6a51154bea08d79ebf5333f..7c2c6194dfca58e1eb2fe6466abf64fd928deb96 100644 (file)
@@ -4,7 +4,7 @@
  * Data structure and helper functions for tracking pending FSF
  * requests.
  *
- * Copyright IBM Corporation 2009
+ * Copyright IBM Corp. 2009
  */
 
 #ifndef ZFCP_REQLIST_H
index b79576b64f451e72352bbc3c92582f23e9a92191..7b31e3f403f9060b2af3955e8f306538206ff486 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Interface to Linux SCSI midlayer.
  *
- * Copyright IBM Corporation 2002, 2010
+ * Copyright IBM Corp. 2002, 2010
  */
 
 #define KMSG_COMPONENT "zfcp"
index cdc4ff78a7baf787e36958b84c208654d97fa9c1..c66af27b230bb99fdde7cd3f28bc45f6eac82ba3 100644 (file)
@@ -3,7 +3,7 @@
  *
  * sysfs attributes.
  *
- * Copyright IBM Corporation 2008, 2010
+ * Copyright IBM Corp. 2008, 2010
  */
 
 #define KMSG_COMPONENT "zfcp"
index 20796ebc33cec3435cb5b2a2de297580e534fb8c..3f2bff0d3aa21fd9996cedc187c441bff167718e 100644 (file)
@@ -4,7 +4,7 @@
  * Tracking of manually configured LUNs and helper functions to
  * register the LUNs with the SCSI midlayer.
  *
- * Copyright IBM Corporation 2010
+ * Copyright IBM Corp. 2010
  */
 
 #include "zfcp_def.h"