Commit e017507f authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

Pull s390 changes from Martin Schwidefsky:
 "No new functions, a few changes to make the code more robust, some
  cleanups and bug fixes."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (21 commits)
  s390/vtimer: rework virtual timer interface
  s390/dis: Add the servc instruction to the disassembler.
  s390/comments: unify copyright messages and remove file names
  s390/lgr: Add init check to lgr_info_log()
  s390/cpu init: use __get_cpu_var instead of per_cpu
  s390/idle: reduce size of s390_idle_data structure
  s390/idle: fix sequence handling vs cpu hotplug
  s390/ap: resend enable adapter interrupt request.
  s390/hypfs: Add missing get_next_ino()
  s390/dasd: add shutdown action
  s390/ipl: Fix ipib handling for "dumpreipl" shutdown action
  s390/smp: make absolute lowcore / cpu restart parameter accesses more robust
  s390/vmlogrdr: cleanup driver attribute usage
  s390/vmlogrdr: cleanup device attribute usage
  s390/ccwgroup: remove unused ccwgroup_device member
  s390/cio/chp: cleanup attribute usage
  s390/sigp: use sigp order code defines in assembly code
  s390/smp: use sigp cpu status definitions
  s390/smp/kvm: unifiy sigp definitions
  s390/smp: remove redundant check
  ...
parents 759e2a25 27f6b416
/* /*
* arch/s390/appldata/appldata.h
*
* Definitions and interface for Linux - z/VM Monitor Stream. * Definitions and interface for Linux - z/VM Monitor Stream.
* *
* Copyright IBM Corp. 2003, 2008 * Copyright IBM Corp. 2003, 2008
......
/* /*
* arch/s390/appldata/appldata_base.c
*
* Base infrastructure for Linux-z/VM Monitor Stream, Stage 1. * Base infrastructure for Linux-z/VM Monitor Stream, Stage 1.
* Exports appldata_register_ops() and appldata_unregister_ops() for the * Exports appldata_register_ops() and appldata_unregister_ops() for the
* data gathering modules. * data gathering modules.
...@@ -29,7 +27,7 @@ ...@@ -29,7 +27,7 @@
#include <linux/suspend.h> #include <linux/suspend.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <asm/appldata.h> #include <asm/appldata.h>
#include <asm/timer.h> #include <asm/vtimer.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/smp.h> #include <asm/smp.h>
...@@ -84,8 +82,7 @@ static struct ctl_table appldata_dir_table[] = { ...@@ -84,8 +82,7 @@ static struct ctl_table appldata_dir_table[] = {
/* /*
* Timer * Timer
*/ */
static DEFINE_PER_CPU(struct vtimer_list, appldata_timer); static struct vtimer_list appldata_timer;
static atomic_t appldata_expire_count = ATOMIC_INIT(0);
static DEFINE_SPINLOCK(appldata_timer_lock); static DEFINE_SPINLOCK(appldata_timer_lock);
static int appldata_interval = APPLDATA_CPU_INTERVAL; static int appldata_interval = APPLDATA_CPU_INTERVAL;
...@@ -115,10 +112,7 @@ static LIST_HEAD(appldata_ops_list); ...@@ -115,10 +112,7 @@ static LIST_HEAD(appldata_ops_list);
*/ */
static void appldata_timer_function(unsigned long data) static void appldata_timer_function(unsigned long data)
{ {
if (atomic_dec_and_test(&appldata_expire_count)) { queue_work(appldata_wq, (struct work_struct *) data);
atomic_set(&appldata_expire_count, num_online_cpus());
queue_work(appldata_wq, (struct work_struct *) data);
}
} }
/* /*
...@@ -131,7 +125,6 @@ static void appldata_work_fn(struct work_struct *work) ...@@ -131,7 +125,6 @@ static void appldata_work_fn(struct work_struct *work)
struct list_head *lh; struct list_head *lh;
struct appldata_ops *ops; struct appldata_ops *ops;
get_online_cpus();
mutex_lock(&appldata_ops_mutex); mutex_lock(&appldata_ops_mutex);
list_for_each(lh, &appldata_ops_list) { list_for_each(lh, &appldata_ops_list) {
ops = list_entry(lh, struct appldata_ops, list); ops = list_entry(lh, struct appldata_ops, list);
...@@ -140,7 +133,6 @@ static void appldata_work_fn(struct work_struct *work) ...@@ -140,7 +133,6 @@ static void appldata_work_fn(struct work_struct *work)
} }
} }
mutex_unlock(&appldata_ops_mutex); mutex_unlock(&appldata_ops_mutex);
put_online_cpus();
} }
/* /*
...@@ -168,20 +160,6 @@ int appldata_diag(char record_nr, u16 function, unsigned long buffer, ...@@ -168,20 +160,6 @@ int appldata_diag(char record_nr, u16 function, unsigned long buffer,
/****************************** /proc stuff **********************************/ /****************************** /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_ADD_TIMER 0
#define APPLDATA_DEL_TIMER 1 #define APPLDATA_DEL_TIMER 1
#define APPLDATA_MOD_TIMER 2 #define APPLDATA_MOD_TIMER 2
...@@ -192,49 +170,28 @@ static void __appldata_mod_vtimer_wrap(void *p) { ...@@ -192,49 +170,28 @@ static void __appldata_mod_vtimer_wrap(void *p) {
* Add, delete or modify virtual timers on all online cpus. * Add, delete or modify virtual timers on all online cpus.
* The caller needs to get the appldata_timer_lock spinlock. * The caller needs to get the appldata_timer_lock spinlock.
*/ */
static void static void __appldata_vtimer_setup(int cmd)
__appldata_vtimer_setup(int cmd)
{ {
u64 per_cpu_interval; u64 timer_interval = (u64) appldata_interval * 1000 * TOD_MICRO;
int i;
switch (cmd) { switch (cmd) {
case APPLDATA_ADD_TIMER: case APPLDATA_ADD_TIMER:
if (appldata_timer_active) if (appldata_timer_active)
break; break;
per_cpu_interval = (u64) (appldata_interval*1000 / appldata_timer.expires = timer_interval;
num_online_cpus()) * TOD_MICRO; add_virt_timer_periodic(&appldata_timer);
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_active = 1; appldata_timer_active = 1;
break; break;
case APPLDATA_DEL_TIMER: case APPLDATA_DEL_TIMER:
for_each_online_cpu(i) del_virt_timer(&appldata_timer);
del_virt_timer(&per_cpu(appldata_timer, i));
if (!appldata_timer_active) if (!appldata_timer_active)
break; break;
appldata_timer_active = 0; appldata_timer_active = 0;
atomic_set(&appldata_expire_count, num_online_cpus());
break; break;
case APPLDATA_MOD_TIMER: case APPLDATA_MOD_TIMER:
per_cpu_interval = (u64) (appldata_interval*1000 /
num_online_cpus()) * TOD_MICRO;
if (!appldata_timer_active) if (!appldata_timer_active)
break; break;
for_each_online_cpu(i) { mod_virt_timer_periodic(&appldata_timer, timer_interval);
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);
}
} }
} }
...@@ -265,14 +222,12 @@ appldata_timer_handler(ctl_table *ctl, int write, ...@@ -265,14 +222,12 @@ appldata_timer_handler(ctl_table *ctl, int write,
len = *lenp; 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; return -EFAULT;
get_online_cpus();
spin_lock(&appldata_timer_lock); spin_lock(&appldata_timer_lock);
if (buf[0] == '1') if (buf[0] == '1')
__appldata_vtimer_setup(APPLDATA_ADD_TIMER); __appldata_vtimer_setup(APPLDATA_ADD_TIMER);
else if (buf[0] == '0') else if (buf[0] == '0')
__appldata_vtimer_setup(APPLDATA_DEL_TIMER); __appldata_vtimer_setup(APPLDATA_DEL_TIMER);
spin_unlock(&appldata_timer_lock); spin_unlock(&appldata_timer_lock);
put_online_cpus();
out: out:
*lenp = len; *lenp = len;
*ppos += len; *ppos += len;
...@@ -305,20 +260,17 @@ appldata_interval_handler(ctl_table *ctl, int write, ...@@ -305,20 +260,17 @@ appldata_interval_handler(ctl_table *ctl, int write,
goto out; goto out;
} }
len = *lenp; 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; return -EFAULT;
}
interval = 0; interval = 0;
sscanf(buf, "%i", &interval); sscanf(buf, "%i", &interval);
if (interval <= 0) if (interval <= 0)
return -EINVAL; return -EINVAL;
get_online_cpus();
spin_lock(&appldata_timer_lock); spin_lock(&appldata_timer_lock);
appldata_interval = interval; appldata_interval = interval;
__appldata_vtimer_setup(APPLDATA_MOD_TIMER); __appldata_vtimer_setup(APPLDATA_MOD_TIMER);
spin_unlock(&appldata_timer_lock); spin_unlock(&appldata_timer_lock);
put_online_cpus();
out: out:
*lenp = len; *lenp = len;
*ppos += len; *ppos += len;
...@@ -485,14 +437,12 @@ static int appldata_freeze(struct device *dev) ...@@ -485,14 +437,12 @@ static int appldata_freeze(struct device *dev)
int rc; int rc;
struct list_head *lh; struct list_head *lh;
get_online_cpus();
spin_lock(&appldata_timer_lock); spin_lock(&appldata_timer_lock);
if (appldata_timer_active) { if (appldata_timer_active) {
__appldata_vtimer_setup(APPLDATA_DEL_TIMER); __appldata_vtimer_setup(APPLDATA_DEL_TIMER);
appldata_timer_suspended = 1; appldata_timer_suspended = 1;
} }
spin_unlock(&appldata_timer_lock); spin_unlock(&appldata_timer_lock);
put_online_cpus();
mutex_lock(&appldata_ops_mutex); mutex_lock(&appldata_ops_mutex);
list_for_each(lh, &appldata_ops_list) { list_for_each(lh, &appldata_ops_list) {
...@@ -516,14 +466,12 @@ static int appldata_restore(struct device *dev) ...@@ -516,14 +466,12 @@ static int appldata_restore(struct device *dev)
int rc; int rc;
struct list_head *lh; struct list_head *lh;
get_online_cpus();
spin_lock(&appldata_timer_lock); spin_lock(&appldata_timer_lock);
if (appldata_timer_suspended) { if (appldata_timer_suspended) {
__appldata_vtimer_setup(APPLDATA_ADD_TIMER); __appldata_vtimer_setup(APPLDATA_ADD_TIMER);
appldata_timer_suspended = 0; appldata_timer_suspended = 0;
} }
spin_unlock(&appldata_timer_lock); spin_unlock(&appldata_timer_lock);
put_online_cpus();
mutex_lock(&appldata_ops_mutex); mutex_lock(&appldata_ops_mutex);
list_for_each(lh, &appldata_ops_list) { list_for_each(lh, &appldata_ops_list) {
...@@ -567,53 +515,6 @@ static struct platform_driver appldata_pdrv = { ...@@ -567,53 +515,6 @@ static struct platform_driver appldata_pdrv = {
/******************************* init / exit *********************************/ /******************************* 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() * appldata_init()
* *
...@@ -621,7 +522,10 @@ static struct notifier_block __cpuinitdata appldata_nb = { ...@@ -621,7 +522,10 @@ static struct notifier_block __cpuinitdata appldata_nb = {
*/ */
static int __init appldata_init(void) 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); rc = platform_driver_register(&appldata_pdrv);
if (rc) if (rc)
...@@ -639,14 +543,6 @@ static int __init appldata_init(void) ...@@ -639,14 +543,6 @@ static int __init appldata_init(void)
goto out_device; 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); appldata_sysctl_header = register_sysctl_table(appldata_dir_table);
return 0; return 0;
......
/* /*
* arch/s390/appldata/appldata_mem.c
*
* Data gathering module for Linux-VM Monitor Stream, Stage 1. * Data gathering module for Linux-VM Monitor Stream, Stage 1.
* Collects data related to memory management. * 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> * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
*/ */
......
/* /*
* arch/s390/appldata/appldata_net_sum.c
*
* Data gathering module for Linux-VM Monitor Stream, Stage 1. * Data gathering module for Linux-VM Monitor Stream, Stage 1.
* Collects accumulated network statistics (Packets received/transmitted, * Collects accumulated network statistics (Packets received/transmitted,
* dropped, errors, ...). * 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> * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
*/ */
......
/* /*
* arch/s390/appldata/appldata_os.c
*
* Data gathering module for Linux-VM Monitor Stream, Stage 1. * Data gathering module for Linux-VM Monitor Stream, Stage 1.
* Collects misc. OS related data (CPU utilization, running processes). * 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> * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
*/ */
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* s390 implementation of the AES Cipher Algorithm. * s390 implementation of the AES Cipher Algorithm.
* *
* s390 Version: * s390 Version:
* Copyright IBM Corp. 2005,2007 * Copyright IBM Corp. 2005, 2007
* Author(s): Jan Glauber (jang@de.ibm.com) * Author(s): Jan Glauber (jang@de.ibm.com)
* Sebastian Siewior (sebastian@breakpoint.cc> SW-Fallback * Sebastian Siewior (sebastian@breakpoint.cc> SW-Fallback
* *
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Support for s390 cryptographic instructions. * Support for s390 cryptographic instructions.
* *
* Copyright IBM Corp. 2003,2007 * Copyright IBM Corp. 2003, 2007
* Author(s): Thomas Spatzier * Author(s): Thomas Spatzier
* Jan Glauber (jan.glauber@de.ibm.com) * Jan Glauber (jan.glauber@de.ibm.com)
* *
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* s390 implementation of the DES Cipher Algorithm. * s390 implementation of the DES Cipher Algorithm.
* *
* Copyright IBM Corp. 2003,2011 * Copyright IBM Corp. 2003, 2011
* Author(s): Thomas Spatzier * Author(s): Thomas Spatzier
* Jan Glauber (jan.glauber@de.ibm.com) * Jan Glauber (jan.glauber@de.ibm.com)
* *
......
/* /*
* Copyright IBM Corp. 2006,2007 * Copyright IBM Corp. 2006, 2007
* Author(s): Jan Glauber <jan.glauber@de.ibm.com> * Author(s): Jan Glauber <jan.glauber@de.ibm.com>
* Driver for the s390 pseudo random number generator * Driver for the s390 pseudo random number generator
*/ */
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* implementation written by Steve Reid. * implementation written by Steve Reid.
* *
* s390 Version: * s390 Version:
* Copyright IBM Corp. 2003,2007 * Copyright IBM Corp. 2003, 2007
* Author(s): Thomas Spatzier * Author(s): Thomas Spatzier
* Jan Glauber (jan.glauber@de.ibm.com) * Jan Glauber (jan.glauber@de.ibm.com)
* *
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* s390 implementation of the SHA256 and SHA224 Secure Hash Algorithm. * s390 implementation of the SHA256 and SHA224 Secure Hash Algorithm.
* *
* s390 Version: * s390 Version:
* Copyright IBM Corp. 2005,2011 * Copyright IBM Corp. 2005, 2011
* Author(s): Jan Glauber (jang@de.ibm.com) * Author(s): Jan Glauber (jang@de.ibm.com)
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
......
/* /*
* arch/s390/hypfs/hypfs.h
* Hypervisor filesystem for Linux on s390. * Hypervisor filesystem for Linux on s390.
* *
* Copyright (C) IBM Corp. 2006 * Copyright IBM Corp. 2006
* Author(s): Michael Holzheu <holzheu@de.ibm.com> * Author(s): Michael Holzheu <holzheu@de.ibm.com>
*/ */
......
/* /*
* Hypervisor filesystem for Linux on s390 - debugfs interface * 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> * Author(s): Michael Holzheu <holzheu@linux.vnet.ibm.com>
*/ */
......
/* /*
* arch/s390/hypfs/hypfs_diag.c
* Hypervisor filesystem for Linux on s390. Diag 204 and 224 * Hypervisor filesystem for Linux on s390. Diag 204 and 224
* implementation. * implementation.
* *
......
/* /*
* Hypervisor filesystem for Linux on s390. z/VM implementation. * 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> * Author(s): Michael Holzheu <holzheu@de.ibm.com>
*/ */
......
/* /*
* arch/s390/hypfs/inode.c
* Hypervisor filesystem for Linux on s390. * Hypervisor filesystem for Linux on s390.
* *
* Copyright IBM Corp. 2006, 2008 * Copyright IBM Corp. 2006, 2008
...@@ -103,6 +102,7 @@ static struct inode *hypfs_make_inode(struct super_block *sb, umode_t mode) ...@@ -103,6 +102,7 @@ static struct inode *hypfs_make_inode(struct super_block *sb, umode_t mode)
if (ret) { if (ret) {
struct hypfs_sb_info *hypfs_info = sb->s_fs_info; struct hypfs_sb_info *hypfs_info = sb->s_fs_info;
ret->i_ino = get_next_ino();
ret->i_mode = mode; ret->i_mode = mode;
ret->i_uid = hypfs_info->uid; ret->i_uid = hypfs_info->uid;
ret->i_gid = hypfs_info->gid; ret->i_gid = hypfs_info->gid;
......
/* /*
* include/asm-s390/airq.h * Copyright IBM Corp. 2002, 2007
*
* Copyright IBM Corp. 2002,2007
* Author(s): Ingo Adlung <adlung@de.ibm.com> * Author(s): Ingo Adlung <adlung@de.ibm.com>
* Cornelia Huck <cornelia.huck@de.ibm.com> * Cornelia Huck <cornelia.huck@de.ibm.com>
* Arnd Bergmann <arndb@de.ibm.com> * Arnd Bergmann <arndb@de.ibm.com>
......
/* /*
* include/asm-s390/appldata.h * Copyright IBM Corp. 2006
*
* Copyright (C) IBM Corp. 2006
* *
* Author(s): Melissa Howland <melissah@us.ibm.com> * Author(s): Melissa Howland <melissah@us.ibm.com>
*/ */
......
#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>, * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>,
* Denis Joseph Barrow, * Denis Joseph Barrow,
* Arnd Bergmann <arndb@de.ibm.com>, * Arnd Bergmann <arndb@de.ibm.com>,
...@@ -13,6 +10,9 @@ ...@@ -13,6 +10,9 @@
* *
*/ */
#ifndef __ARCH_S390_ATOMIC__
#define __ARCH_S390_ATOMIC__
#include <linux/compiler.h> #include <linux/compiler.h>
#include <linux/types.h> #include <linux/types.h>
#include <asm/cmpxchg.h> #include <asm/cmpxchg.h>
......
#ifndef _S390_BITOPS_H
#define _S390_BITOPS_H
/* /*
* include/asm-s390/bitops.h
*
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
* *
* Derived from "include/asm-i386/bitops.h" * Derived from "include/asm-i386/bitops.h"
...@@ -13,6 +8,9 @@ ...@@ -13,6 +8,9 @@
* *
*/ */
#ifndef _S390_BITOPS_H
#define _S390_BITOPS_H
#ifndef _LINUX_BITOPS_H #ifndef _LINUX_BITOPS_H
#error only <linux/bitops.h> can be included directly #error only <linux/bitops.h> can be included directly
#endif #endif
......
/* /*
* include/asm-s390/bugs.h
*
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
* *
* Derived from "include/asm-i386/bugs.h" * Derived from "include/asm-i386/bugs.h"
......
/* /*
* include/asm-s390/cache.h
*
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* *
* Derived from "include/asm-i386/cache.h" * Derived from "include/asm-i386/cache.h"
* Copyright (C) 1992, Linus Torvalds * Copyright (C) 1992, Linus Torvalds
......
/* /*
* Copyright IBM Corp. 2002, 2009 * Copyright IBM Corp. 2002, 2009
* *
* Author(s): Arnd Bergmann <arndb@de.ibm.com> * Author(s): Arnd Bergmann <arndb@de.ibm.com>
* *
......
...@@ -6,14 +6,12 @@ struct ccw_driver; ...@@ -6,14 +6,12 @@ struct ccw_driver;
/** /**
* struct ccwgroup_device - ccw group device * struct ccwgroup_device - ccw group device
* @creator_id: unique number of the driver
* @state: online/offline state * @state: online/offline state
* @count: number of attached slave devices * @count: number of attached slave devices
* @dev: embedded device structure * @dev: embedded device structure
* @cdev: variable number of slave devices, allocated as needed * @cdev: variable number of slave devices, allocated as needed
*/ */
struct ccwgroup_device { struct ccwgroup_device {
unsigned long creator_id;
enum { enum {
CCWGROUP_OFFLINE, CCWGROUP_OFFLINE,
CCWGROUP_ONLINE, CCWGROUP_ONLINE,
......
#ifndef _S390_CHECKSUM_H
#define _S390_CHECKSUM_H
/* /*
* include/asm-s390/checksum.h
* S390 fast network checksum routines * S390 fast network checksum routines
* see also arch/S390/lib/checksum.c
* *
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Ulrich Hild (first version) * Author(s): Ulrich Hild (first version)
* Martin Schwidefsky (heavily optimized CKSM version) * Martin Schwidefsky (heavily optimized CKSM version)
* D.J. Barrow (third attempt) * D.J. Barrow (third attempt)
*/ */
#ifndef _S390_CHECKSUM_H
#define _S390_CHECKSUM_H
#include <asm/uaccess.h> #include <asm/uaccess.h>
/* /*
......
/* /*
* drivers/s390/cio/chpid.h
*
* Copyright IBM Corp. 2007 * Copyright IBM Corp. 2007
* Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
*/ */
......
/* /*
* ioctl interface for /dev/chsc * ioctl interface for /dev/chsc
* *
* Copyright 2008 IBM Corp. * Copyright IBM Corp. 2008
* Author(s): Cornelia Huck <cornelia.huck@de.ibm.com> * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
*/ */
......
/* /*
* include/asm-s390/cio.h
* include/asm-s390x/cio.h
*
* Common interface for I/O on S/390 * Common interface for I/O on S/390
*/ */
#ifndef _ASM_S390_CIO_H_ #ifndef _ASM_S390_CIO_H_
......
/* /*
* arch/s390/kernel/cpcmd.h
*
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
* Christian Borntraeger (cborntra@de.ibm.com), * Christian Borntraeger (cborntra@de.ibm.com),
*/ */
......
/* /*
* Copyright IBM Corp. 2000,2009 * Copyright IBM Corp. 2000, 2009
* Author(s): Hartmut Penner <hp@de.ibm.com>, * Author(s): Hartmut Penner <hp@de.ibm.com>,
* Martin Schwidefsky <schwidefsky@de.ibm.com>, * Martin Schwidefsky <schwidefsky@de.ibm.com>,
* Christian Ehrhardt <ehrhardt@de.ibm.com>, * Christian Ehrhardt <ehrhardt@de.ibm.com>,
......
/* /*
* include/asm-s390/cputime.h * Copyright IBM Corp. 2004
*
* (C) Copyright IBM Corp. 2004
* *
* Author: Martin Schwidefsky <schwidefsky@de.ibm.com> * Author: Martin Schwidefsky <schwidefsky@de.ibm.com>
*/ */
...@@ -167,12 +165,14 @@ static inline clock_t cputime64_to_clock_t(cputime64_t cputime) ...@@ -167,12 +165,14 @@ static inline clock_t cputime64_to_clock_t(cputime64_t cputime)
} }
struct s390_idle_data { struct s390_idle_data {
int nohz_delay;
unsigned int sequence; unsigned int sequence;
unsigned long long idle_count; unsigned long long idle_count;
unsigned long long idle_enter;
unsigned long long idle_exit;
unsigned long long idle_time; 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); DECLARE_PER_CPU(struct s390_idle_data, s390_idle);
......
/* /*
* Data definitions for channel report processing * Data definitions for channel report processing
* Copyright IBM Corp. 2000,2009 * Copyright IBM Corp. 2000, 2009
* Author(s): Ingo Adlung <adlung@de.ibm.com>, * Author(s): Ingo Adlung <adlung@de.ibm.com>,
* Martin Schwidefsky <schwidefsky@de.ibm.com>, * Martin Schwidefsky <schwidefsky@de.ibm.com>,
* Cornelia Huck <cornelia.huck@de.ibm.com>, * Cornelia Huck <cornelia.huck@de.ibm.com>,
......
/* /*
* include/asm-s390/current.h
*
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
* *
* Derived from "include/asm-i386/current.h" * Derived from "include/asm-i386/current.h"
......
/* /*
* File...........: linux/drivers/s390/block/dasd.c
* Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
* Bugreports.to..: <Linux390@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 * EMC Symmetrix ioctl Copyright EMC Corporation, 2008
* Author.........: Nigel Hislop <hislop_nigel@emc.com> * Author.........: Nigel Hislop <hislop_nigel@emc.com>
* *
......
/* /*
* include/asm-s390/debug.h
* S/390 debug facility * S/390 debug facility
* *
* Copyright (C) 1999, 2000 IBM Deutschland Entwicklung GmbH, * Copyright IBM Corp. 1999, 2000
* IBM Corporation
*/ */
#ifndef DEBUG_H #ifndef DEBUG_H
......
/* /*
* include/asm-s390/delay.h
*
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
* *
* Derived from "include/asm-i386/delay.h" * Derived from "include/asm-i386/delay.h"
......
/* /*
* include/asm-s390/dma.h
*
* S390 version * S390 version
*/ */
......
/* /*
* include/asm-s390/ebcdic.h
* EBCDIC -> ASCII, ASCII -> EBCDIC conversion routines. * EBCDIC -> ASCII, ASCII -> EBCDIC conversion routines.
* *
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
*/ */
......
/* /*
* include/asm-s390/elf.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/elf.h" * Derived from "include/asm-i386/elf.h"
......
/* /*
* include/asm-s390/errno.h
*
* S390 version * S390 version
* *
*/ */
......
/* /*
* include/asm-s390/etr.h
*
* Copyright IBM Corp. 2006 * Copyright IBM Corp. 2006
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
*/ */
......
/* /*
* include/asm-s390x/extmem.h
*
* definitions for external memory segment support * definitions for external memory segment support
* Copyright (C) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 2003
*/ */
#ifndef _ASM_S390X_DCSS_H #ifndef _ASM_S390X_DCSS_H
......
/* /*
* include/asm-s390/hardirq.h
*
* S390 version * 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), * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
* Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) * Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
* *
......
/* /*
* File...........: linux/include/asm-s390x/idals.h
* Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
* Martin Schwidefsky <schwidefsky@de.ibm.com> * Martin Schwidefsky <schwidefsky@de.ibm.com>
* Bugreports.to..: <Linux390@de.ibm.com> * Bugreports.to..: <Linux390@de.ibm.com>
* (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2000a * Copyright IBM Corp. 2000
*
* History of changes * History of changes
* 07/24/00 new file * 07/24/00 new file
* 05/04/02 code restructuring. * 05/04/02 code restructuring.
......
/* /*
* include/asm-s390/io.h
*
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
* *
* Derived from "include/asm-i386/io.h" * Derived from "include/asm-i386/io.h"
......
/* /*
* Copyright IBM Corp. 2006,2010 * Copyright IBM Corp. 2006, 2010
* Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
*/ */
......
/* /*
* include/asm-s390/kexec.h * Copyright IBM Corp. 2005
*
* (C) Copyright IBM Corp. 2005
* *
* Author(s): Rolf Adelsberger <adelsberger@de.ibm.com> * Author(s): Rolf Adelsberger <adelsberger@de.ibm.com>
* *
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * 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 * 2002-Oct Created by Vamsi Krishna S <vamsi_krishna@in.ibm.com> Kernel
* Probes initial implementation ( includes suggestions from * Probes initial implementation ( includes suggestions from
......
#ifndef __LINUX_KVM_S390_H #ifndef __LINUX_KVM_S390_H
#define __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 * Copyright IBM Corp. 2008
* *
......
/* /*
* 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 * 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) * it under the terms of the GNU General Public License (version 2 only)
......
/* /*
* asm-s390/kvm_para.h - definition for paravirtual devices on s390 * definition for paravirtual devices on s390
* *
* Copyright IBM Corp. 2008 * Copyright IBM Corp. 2008
* *
......
/* /*
* kvm_virtio.h - definition for virtio for kvm on s390 * definition for virtio for kvm on s390
* *
* Copyright IBM Corp. 2008 * Copyright IBM Corp. 2008
* *
......
/* /*
* Copyright IBM Corp. 1999,2012 * Copyright IBM Corp. 1999, 2012
* Author(s): Hartmut Penner <hp@de.ibm.com>, * Author(s): Hartmut Penner <hp@de.ibm.com>,
* Martin Schwidefsky <schwidefsky@de.ibm.com>, * Martin Schwidefsky <schwidefsky@de.ibm.com>,
* Denis Joseph Barrow, * Denis Joseph Barrow,
...@@ -302,12 +302,7 @@ struct _lowcore { ...@@ -302,12 +302,7 @@ struct _lowcore {
*/ */
__u64 ipib; /* 0x0e00 */ __u64 ipib; /* 0x0e00 */
__u32 ipib_checksum; /* 0x0e08 */ __u32 ipib_checksum; /* 0x0e08 */
/* __u64 vmcore_info; /* 0x0e0c */
* 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 */
__u8 pad_0x0e14[0x0e18-0x0e14]; /* 0x0e14 */ __u8 pad_0x0e14[0x0e18-0x0e14]; /* 0x0e14 */
__u64 os_info; /* 0x0e18 */ __u64 os_info; /* 0x0e18 */
__u8 pad_0x0e20[0x0f00-0x0e20]; /* 0x0e20 */ __u8 pad_0x0e20[0x0f00-0x0e20]; /* 0x0e20 */
......
/* /*
* arch/s390/kernel/mathemu.h
* IEEE floating point emulation. * IEEE floating point emulation.
* *
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
*/ */
......
/* /*
* include/asm-s390/mman.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/mman.h" * Derived from "include/asm-i386/mman.h"
......
/* /*
* include/asm-s390/mmu_context.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/mmu_context.h" * Derived from "include/asm-i386/mmu_context.h"
......
/* /*
* include/asm-s390/monwriter.h * Copyright IBM Corp. 2006
*
* Copyright (C) IBM Corp. 2006
* Character device driver for writing z/VM APPLDATA monitor records * Character device driver for writing z/VM APPLDATA monitor records
* Version 1.0 * Version 1.0
* Author(s): Melissa Howland <melissah@us.ibm.com> * Author(s): Melissa Howland <melissah@us.ibm.com>
......
/* /*
* Machine check handler definitions * Machine check handler definitions
* *
* Copyright IBM Corp. 2000,2009 * Copyright IBM Corp. 2000, 2009
* Author(s): Ingo Adlung <adlung@de.ibm.com>, * Author(s): Ingo Adlung <adlung@de.ibm.com>,
* Martin Schwidefsky <schwidefsky@de.ibm.com>, * Martin Schwidefsky <schwidefsky@de.ibm.com>,
* Cornelia Huck <cornelia.huck@de.ibm.com>, * Cornelia Huck <cornelia.huck@de.ibm.com>,
......
/* /*
* include/asm-s390/page.h
*
* S390 version * 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) * Author(s): Hartmut Penner (hp@de.ibm.com)
*/ */
......
/* /*
* include/asm-s390/pgalloc.h
*
* S390 version * 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) * Author(s): Hartmut Penner (hp@de.ibm.com)
* Martin Schwidefsky (schwidefsky@de.ibm.com) * Martin Schwidefsky (schwidefsky@de.ibm.com)
* *
......
/* /*
* include/asm-s390/pgtable.h
*
* S390 version * 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) * Author(s): Hartmut Penner (hp@de.ibm.com)
* Ulrich Weigand (weigand@de.ibm.com) * Ulrich Weigand (weigand@de.ibm.com)
* Martin Schwidefsky (schwidefsky@de.ibm.com) * Martin Schwidefsky (schwidefsky@de.ibm.com)
......
/* /*
* include/asm-s390/posix_types.h
*
* S390 version * S390 version
* *
*/ */
......
/* /*
* include/asm-s390/processor.h
*
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Hartmut Penner (hp@de.ibm.com), * Author(s): Hartmut Penner (hp@de.ibm.com),
* Martin Schwidefsky (schwidefsky@de.ibm.com) * Martin Schwidefsky (schwidefsky@de.ibm.com)
* *
...@@ -348,4 +346,14 @@ extern void (*s390_base_ext_handler_fn)(void); ...@@ -348,4 +346,14 @@ extern void (*s390_base_ext_handler_fn)(void);
".previous\n" ".previous\n"
#endif #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 */ #endif /* __ASM_S390_PROCESSOR_H */
/* /*
* include/asm-s390/ptrace.h
*
* S390 version * 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) * Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
*/ */
......
/* /*
* linux/include/asm-s390/qdio.h * Copyright IBM Corp. 2000, 2008
*
* Copyright 2000,2008 IBM Corp.
* Author(s): Utz Bacher <utz.bacher@de.ibm.com> * Author(s): Utz Bacher <utz.bacher@de.ibm.com>
* Jan Glauber <jang@linux.vnet.ibm.com> * Jan Glauber <jang@linux.vnet.ibm.com>
* *
......
/* /*
* include/asm-s390/qeth.h
*
* ioctl definitions for qeth driver * ioctl definitions for qeth driver
* *
* Copyright (C) 2004 IBM Corporation * Copyright IBM Corp. 2004
* *
* Author(s): Thomas Spatzier <tspat@de.ibm.com> * Author(s): Thomas Spatzier <tspat@de.ibm.com>
* *
......
/* /*
* include/asm-s390/reset.h
*
* Copyright IBM Corp. 2006 * Copyright IBM Corp. 2006
* Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
*/ */
......
/* /*
* include/asm-s390/resource.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/resources.h" * Derived from "include/asm-i386/resources.h"
......
...@@ -2,10 +2,8 @@ ...@@ -2,10 +2,8 @@
#define _S390_RWSEM_H #define _S390_RWSEM_H
/* /*
* include/asm-s390/rwsem.h
*
* S390 version * S390 version
* Copyright (C) 2002 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 2002
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
* *
* Based on asm-alpha/semaphore.h and asm-i386/rwsem.h * Based on asm-alpha/semaphore.h and asm-i386/rwsem.h
......
/* /*
* include/asm-s390/sclp.h
*
* Copyright IBM Corp. 2007 * Copyright IBM Corp. 2007
* Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
*/ */
......
/* /*
* Helper functions for scsw access. * Helper functions for scsw access.
* *
* Copyright IBM Corp. 2008,2009 * Copyright IBM Corp. 2008, 2009
* Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com> * Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
*/ */
......
/* /*
* include/asm-s390/setup.h
*
* S390 version * S390 version
* Copyright IBM Corp. 1999,2010 * Copyright IBM Corp. 1999, 2010
*/ */
#ifndef _ASM_S390_SETUP_H #ifndef _ASM_S390_SETUP_H
......
/* /*
* include/asm-s390/shmparam.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/shmparam.h" * Derived from "include/asm-i386/shmparam.h"
......
/* /*
* include/asm-s390/sigcontext.h
*
* S390 version * S390 version
* Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999, 2000
*/ */
#ifndef _ASM_S390_SIGCONTEXT_H #ifndef _ASM_S390_SIGCONTEXT_H
......
/* /*
* include/asm-s390/siginfo.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/siginfo.h" * Derived from "include/asm-i386/siginfo.h"
......
/* /*
* include/asm-s390/signal.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/signal.h" * Derived from "include/asm-i386/signal.h"
......
#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 */
/* /*
* Copyright IBM Corp. 1999,2012 * Copyright IBM Corp. 1999, 2012
* Author(s): Denis Joseph Barrow, * Author(s): Denis Joseph Barrow,
* Martin Schwidefsky <schwidefsky@de.ibm.com>, * Martin Schwidefsky <schwidefsky@de.ibm.com>,
* Heiko Carstens <heiko.carstens@de.ibm.com>, * Heiko Carstens <heiko.carstens@de.ibm.com>,
......
/* /*
* include/asm-s390/socket.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/socket.h" * Derived from "include/asm-i386/socket.h"
......
/* /*
* include/asm-s390/spinlock.h
*
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
* *
* Derived from "include/asm-i386/spinlock.h" * Derived from "include/asm-i386/spinlock.h"
......
/* /*
* include/asm-s390/stat.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/stat.h" * Derived from "include/asm-i386/stat.h"
......
/* /*
* include/asm-s390/statfs.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/statfs.h" * Derived from "include/asm-i386/statfs.h"
......
/* /*
* include/asm-s390/string.h
*
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
*/ */
......
...@@ -2,10 +2,8 @@ ...@@ -2,10 +2,8 @@
#define _S390_SWAB_H #define _S390_SWAB_H
/* /*
* include/asm-s390/swab.h
*
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
*/ */
......
/* /*
* definition for store system information stsi * 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 * 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) * it under the terms of the GNU General Public License (version 2 only)
......
/************************************************************************* /*************************************************************************
* *
* tape390.h
* enables user programs to display messages and control encryption * enables user programs to display messages and control encryption
* on s390 tape devices * on s390 tape devices
* *
* Copyright IBM Corp. 2001,2006 * Copyright IBM Corp. 2001, 2006
* Author(s): Michael Holzheu <holzheu@de.ibm.com> * Author(s): Michael Holzheu <holzheu@de.ibm.com>
* *
*************************************************************************/ *************************************************************************/
......
/* /*
* include/asm-s390/termios.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/termios.h" * Derived from "include/asm-i386/termios.h"
......
/* /*
* include/asm-s390/thread_info.h
*
* S390 version * S390 version
* Copyright (C) IBM Corp. 2002,2006 * Copyright IBM Corp. 2002, 2006
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
*/ */
......
/* /*
* include/asm-s390/timex.h
*
* S390 version * S390 version
* Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Copyright IBM Corp. 1999
* *
* Derived from "include/asm-i386/timex.h" * Derived from "include/asm-i386/timex.h"
* Copyright (C) 1992, Linus Torvalds * Copyright (C) 1992, Linus Torvalds
......
/* /*
* include/asm-s390/types.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/types.h" * Derived from "include/asm-i386/types.h"
......
/* /*
* include/asm-s390/uaccess.h
*
* S390 version * 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), * Author(s): Hartmut Penner (hp@de.ibm.com),
* Martin Schwidefsky (schwidefsky@de.ibm.com) * Martin Schwidefsky (schwidefsky@de.ibm.com)
* *
...@@ -381,8 +379,6 @@ clear_user(void __user *to, unsigned long n) ...@@ -381,8 +379,6 @@ clear_user(void __user *to, unsigned long n)
return 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_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); extern int copy_from_user_real(void *dest, void __user *src, size_t count);
......
/* /*
* include/asm-s390/ucontext.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/ucontext.h" * Derived from "include/asm-i386/ucontext.h"
......
/* /*
* include/asm-s390/unistd.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/unistd.h" * Derived from "include/asm-i386/unistd.h"
......
/* /*
* include/asm-s390/user.h
*
* S390 version * S390 version
* *
* Derived from "include/asm-i386/usr.h" * Derived from "include/asm-i386/usr.h"
......
/* /*
* include/asm-s390/timer.h * Copyright IBM Corp. 2003, 2012
*
* (C) Copyright IBM Corp. 2003,2006
* Virtual CPU timer * Virtual CPU timer
* *
* Author: Jan Glauber (jang@de.ibm.com) * Author(s): Jan Glauber <jan.glauber@de.ibm.com>
*/ */
#ifndef _ASM_S390_TIMER_H #ifndef _ASM_S390_TIMER_H
#define _ASM_S390_TIMER_H #define _ASM_S390_TIMER_H
#include <linux/timer.h> #define VTIMER_MAX_SLICE (0x7fffffffffffffffULL)
#define VTIMER_MAX_SLICE (0x7ffffffffffff000LL)
struct vtimer_list { struct vtimer_list {
struct list_head entry; struct list_head entry;
u64 expires;
int cpu; u64 interval;
__u64 expires;
__u64 interval;
void (*function)(unsigned long); void (*function)(unsigned long);
unsigned long data; 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 init_virt_timer(struct vtimer_list *timer);
extern void add_virt_timer(void *new); extern void add_virt_timer(struct vtimer_list *timer);
extern void add_virt_timer_periodic(void *new); 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(struct vtimer_list *timer, u64 expires);
extern int mod_virt_timer_periodic(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 int del_virt_timer(struct vtimer_list *timer);
extern void init_cpu_vtimer(void); extern void init_cpu_vtimer(void);
extern void vtime_init(void); extern void vtime_init(void);
extern void vtime_stop_cpu(void); extern void vtime_stop_cpu(void);
extern void vtime_start_leave(void);
#endif /* _ASM_S390_TIMER_H */ #endif /* _ASM_S390_TIMER_H */
/* /*
* include/asm-s390/vtoc.h
*
* This file contains volume label definitions for DASD devices. * 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> * Author(s): Volker Sameske <sameske@de.ibm.com>
* *
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* zcrypt 2.1.0 (user-visible header) * zcrypt 2.1.0 (user-visible header)
* *
* Copyright (C) 2001, 2006 IBM Corporation * Copyright IBM Corp. 2001, 2006
* Author(s): Robert Burroughs * Author(s): Robert Burroughs
* Eric Rossman (edrossma@us.ibm.com) * Eric Rossman (edrossma@us.ibm.com)
* *
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
#include <linux/kbuild.h> #include <linux/kbuild.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <asm/cputime.h> #include <asm/cputime.h>
#include <asm/timer.h>
#include <asm/vdso.h> #include <asm/vdso.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
...@@ -72,11 +71,10 @@ int main(void) ...@@ -72,11 +71,10 @@ int main(void)
DEFINE(__CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC); DEFINE(__CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
BLANK(); BLANK();
/* idle data offsets */ /* idle data offsets */
DEFINE(__IDLE_ENTER, offsetof(struct s390_idle_data, idle_enter)); DEFINE(__CLOCK_IDLE_ENTER, offsetof(struct s390_idle_data, clock_idle_enter));
DEFINE(__IDLE_EXIT, offsetof(struct s390_idle_data, idle_exit)); DEFINE(__CLOCK_IDLE_EXIT, offsetof(struct s390_idle_data, clock_idle_exit));
/* vtimer queue offsets */ DEFINE(__TIMER_IDLE_ENTER, offsetof(struct s390_idle_data, timer_idle_enter));
DEFINE(__VQ_IDLE_ENTER, offsetof(struct vtimer_queue, idle_enter)); DEFINE(__TIMER_IDLE_EXIT, offsetof(struct s390_idle_data, timer_idle_exit));
DEFINE(__VQ_IDLE_EXIT, offsetof(struct vtimer_queue, idle_exit));
/* lowcore offsets */ /* lowcore offsets */
DEFINE(__LC_EXT_PARAMS, offsetof(struct _lowcore, ext_params)); DEFINE(__LC_EXT_PARAMS, offsetof(struct _lowcore, ext_params));
DEFINE(__LC_EXT_CPU_ADDR, offsetof(struct _lowcore, ext_cpu_addr)); DEFINE(__LC_EXT_CPU_ADDR, offsetof(struct _lowcore, ext_cpu_addr));
...@@ -131,6 +129,8 @@ int main(void) ...@@ -131,6 +129,8 @@ int main(void)
DEFINE(__LC_PANIC_STACK, offsetof(struct _lowcore, panic_stack)); DEFINE(__LC_PANIC_STACK, offsetof(struct _lowcore, panic_stack));
DEFINE(__LC_RESTART_STACK, offsetof(struct _lowcore, restart_stack)); DEFINE(__LC_RESTART_STACK, offsetof(struct _lowcore, restart_stack));
DEFINE(__LC_RESTART_FN, offsetof(struct _lowcore, restart_fn)); 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_USER_ASCE, offsetof(struct _lowcore, user_asce));
DEFINE(__LC_INT_CLOCK, offsetof(struct _lowcore, int_clock)); DEFINE(__LC_INT_CLOCK, offsetof(struct _lowcore, int_clock));
DEFINE(__LC_MCCK_CLOCK, offsetof(struct _lowcore, mcck_clock)); DEFINE(__LC_MCCK_CLOCK, offsetof(struct _lowcore, mcck_clock));
......
/* /*
* arch/s390/kernel/base.S * arch/s390/kernel/base.S
* *
* Copyright IBM Corp. 2006,2007 * Copyright IBM Corp. 2006, 2007
* Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
* Michael Holzheu <holzheu@de.ibm.com> * Michael Holzheu <holzheu@de.ibm.com>
*/ */
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
#include <asm/sigp.h>
#ifdef CONFIG_64BIT #ifdef CONFIG_64BIT
...@@ -100,7 +101,7 @@ ENTRY(diag308_reset) ...@@ -100,7 +101,7 @@ ENTRY(diag308_reset)
.Lrestart_part2: .Lrestart_part2:
lhi %r0,0 # Load r0 with zero lhi %r0,0 # Load r0 with zero
lhi %r1,2 # Use mode 2 = ESAME (dump) 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 sam64 # Switch to 64 bit addressing mode
larl %r4,.Lctlregs # Restore control registers larl %r4,.Lctlregs # Restore control registers
lctlg %c0,%c15,0(%r4) lctlg %c0,%c15,0(%r4)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* Bitmaps for set_bit, clear_bit, test_and_set_bit, ... * Bitmaps for set_bit, clear_bit, test_and_set_bit, ...
* See include/asm/{bitops.h|posix_types.h} for details * 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>, * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>,
*/ */
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment