提交 e017507f 编写于 作者: L 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
  ...
/* /*
* 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>,
*/ */
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册