mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: [S390] update default configuration. [S390] omit frame pointers on s390 when possible [S390] Use tape_generic_offline directly. [S390] /proc/stat idle field for idle cpus [S390] appldata: avoid deadlock with appldata_mem [S390] ipl: fix compile breakage
This commit is contained in:
commit
58be18c4de
@ -98,7 +98,7 @@ static DECLARE_WORK(appldata_work, appldata_work_fn);
|
|||||||
/*
|
/*
|
||||||
* Ops list
|
* Ops list
|
||||||
*/
|
*/
|
||||||
static DEFINE_SPINLOCK(appldata_ops_lock);
|
static DEFINE_MUTEX(appldata_ops_mutex);
|
||||||
static LIST_HEAD(appldata_ops_list);
|
static LIST_HEAD(appldata_ops_list);
|
||||||
|
|
||||||
|
|
||||||
@ -129,14 +129,14 @@ static void appldata_work_fn(struct work_struct *work)
|
|||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
get_online_cpus();
|
get_online_cpus();
|
||||||
spin_lock(&appldata_ops_lock);
|
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);
|
||||||
if (ops->active == 1) {
|
if (ops->active == 1) {
|
||||||
ops->callback(ops->data);
|
ops->callback(ops->data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
spin_unlock(&appldata_ops_lock);
|
mutex_unlock(&appldata_ops_mutex);
|
||||||
put_online_cpus();
|
put_online_cpus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -338,7 +338,7 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
|
|||||||
struct list_head *lh;
|
struct list_head *lh;
|
||||||
|
|
||||||
found = 0;
|
found = 0;
|
||||||
spin_lock(&appldata_ops_lock);
|
mutex_lock(&appldata_ops_mutex);
|
||||||
list_for_each(lh, &appldata_ops_list) {
|
list_for_each(lh, &appldata_ops_list) {
|
||||||
tmp_ops = list_entry(lh, struct appldata_ops, list);
|
tmp_ops = list_entry(lh, struct appldata_ops, list);
|
||||||
if (&tmp_ops->ctl_table[2] == ctl) {
|
if (&tmp_ops->ctl_table[2] == ctl) {
|
||||||
@ -346,15 +346,15 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!found) {
|
if (!found) {
|
||||||
spin_unlock(&appldata_ops_lock);
|
mutex_unlock(&appldata_ops_mutex);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
ops = ctl->data;
|
ops = ctl->data;
|
||||||
if (!try_module_get(ops->owner)) { // protect this function
|
if (!try_module_get(ops->owner)) { // protect this function
|
||||||
spin_unlock(&appldata_ops_lock);
|
mutex_unlock(&appldata_ops_mutex);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
spin_unlock(&appldata_ops_lock);
|
mutex_unlock(&appldata_ops_mutex);
|
||||||
|
|
||||||
if (!*lenp || *ppos) {
|
if (!*lenp || *ppos) {
|
||||||
*lenp = 0;
|
*lenp = 0;
|
||||||
@ -378,11 +378,11 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
|
|||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_lock(&appldata_ops_lock);
|
mutex_lock(&appldata_ops_mutex);
|
||||||
if ((buf[0] == '1') && (ops->active == 0)) {
|
if ((buf[0] == '1') && (ops->active == 0)) {
|
||||||
// protect work queue callback
|
// protect work queue callback
|
||||||
if (!try_module_get(ops->owner)) {
|
if (!try_module_get(ops->owner)) {
|
||||||
spin_unlock(&appldata_ops_lock);
|
mutex_unlock(&appldata_ops_mutex);
|
||||||
module_put(ops->owner);
|
module_put(ops->owner);
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
@ -407,7 +407,7 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
|
|||||||
"failed with rc=%d\n", ops->name, rc);
|
"failed with rc=%d\n", ops->name, rc);
|
||||||
module_put(ops->owner);
|
module_put(ops->owner);
|
||||||
}
|
}
|
||||||
spin_unlock(&appldata_ops_lock);
|
mutex_unlock(&appldata_ops_mutex);
|
||||||
out:
|
out:
|
||||||
*lenp = len;
|
*lenp = len;
|
||||||
*ppos += len;
|
*ppos += len;
|
||||||
@ -433,9 +433,9 @@ int appldata_register_ops(struct appldata_ops *ops)
|
|||||||
if (!ops->ctl_table)
|
if (!ops->ctl_table)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
spin_lock(&appldata_ops_lock);
|
mutex_lock(&appldata_ops_mutex);
|
||||||
list_add(&ops->list, &appldata_ops_list);
|
list_add(&ops->list, &appldata_ops_list);
|
||||||
spin_unlock(&appldata_ops_lock);
|
mutex_unlock(&appldata_ops_mutex);
|
||||||
|
|
||||||
ops->ctl_table[0].procname = appldata_proc_name;
|
ops->ctl_table[0].procname = appldata_proc_name;
|
||||||
ops->ctl_table[0].maxlen = 0;
|
ops->ctl_table[0].maxlen = 0;
|
||||||
@ -452,9 +452,9 @@ int appldata_register_ops(struct appldata_ops *ops)
|
|||||||
goto out;
|
goto out;
|
||||||
return 0;
|
return 0;
|
||||||
out:
|
out:
|
||||||
spin_lock(&appldata_ops_lock);
|
mutex_lock(&appldata_ops_mutex);
|
||||||
list_del(&ops->list);
|
list_del(&ops->list);
|
||||||
spin_unlock(&appldata_ops_lock);
|
mutex_unlock(&appldata_ops_mutex);
|
||||||
kfree(ops->ctl_table);
|
kfree(ops->ctl_table);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
@ -466,9 +466,9 @@ out:
|
|||||||
*/
|
*/
|
||||||
void appldata_unregister_ops(struct appldata_ops *ops)
|
void appldata_unregister_ops(struct appldata_ops *ops)
|
||||||
{
|
{
|
||||||
spin_lock(&appldata_ops_lock);
|
mutex_lock(&appldata_ops_mutex);
|
||||||
list_del(&ops->list);
|
list_del(&ops->list);
|
||||||
spin_unlock(&appldata_ops_lock);
|
mutex_unlock(&appldata_ops_mutex);
|
||||||
unregister_sysctl_table(ops->sysctl_header);
|
unregister_sysctl_table(ops->sysctl_header);
|
||||||
kfree(ops->ctl_table);
|
kfree(ops->ctl_table);
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,7 @@ static void appldata_get_mem_data(void *data)
|
|||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* don't put large structures on the stack, we are
|
* don't put large structures on the stack, we are
|
||||||
* serialized through the appldata_ops_lock and can use static
|
* serialized through the appldata_ops_mutex and can use static
|
||||||
*/
|
*/
|
||||||
static struct sysinfo val;
|
static struct sysinfo val;
|
||||||
unsigned long ev[NR_VM_EVENT_ITEMS];
|
unsigned long ev[NR_VM_EVENT_ITEMS];
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated make config: don't edit
|
# Automatically generated make config: don't edit
|
||||||
# Linux kernel version: 2.6.29-rc4
|
# Linux kernel version: 2.6.30-rc3
|
||||||
# Wed Feb 11 10:07:16 2009
|
# Thu Apr 23 09:29:52 2009
|
||||||
#
|
#
|
||||||
CONFIG_SCHED_MC=y
|
CONFIG_SCHED_MC=y
|
||||||
CONFIG_MMU=y
|
CONFIG_MMU=y
|
||||||
@ -22,6 +22,7 @@ CONFIG_NO_DMA=y
|
|||||||
CONFIG_GENERIC_LOCKBREAK=y
|
CONFIG_GENERIC_LOCKBREAK=y
|
||||||
CONFIG_PGSTE=y
|
CONFIG_PGSTE=y
|
||||||
CONFIG_VIRT_CPU_ACCOUNTING=y
|
CONFIG_VIRT_CPU_ACCOUNTING=y
|
||||||
|
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
|
||||||
CONFIG_S390=y
|
CONFIG_S390=y
|
||||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||||
|
|
||||||
@ -37,6 +38,7 @@ CONFIG_SWAP=y
|
|||||||
CONFIG_SYSVIPC=y
|
CONFIG_SYSVIPC=y
|
||||||
CONFIG_SYSVIPC_SYSCTL=y
|
CONFIG_SYSVIPC_SYSCTL=y
|
||||||
CONFIG_POSIX_MQUEUE=y
|
CONFIG_POSIX_MQUEUE=y
|
||||||
|
CONFIG_POSIX_MQUEUE_SYSCTL=y
|
||||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||||
# CONFIG_TASKSTATS is not set
|
# CONFIG_TASKSTATS is not set
|
||||||
CONFIG_AUDIT=y
|
CONFIG_AUDIT=y
|
||||||
@ -77,21 +79,24 @@ CONFIG_IPC_NS=y
|
|||||||
# CONFIG_NET_NS is not set
|
# CONFIG_NET_NS is not set
|
||||||
CONFIG_BLK_DEV_INITRD=y
|
CONFIG_BLK_DEV_INITRD=y
|
||||||
CONFIG_INITRAMFS_SOURCE=""
|
CONFIG_INITRAMFS_SOURCE=""
|
||||||
|
CONFIG_RD_GZIP=y
|
||||||
|
CONFIG_RD_BZIP2=y
|
||||||
|
CONFIG_RD_LZMA=y
|
||||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||||
CONFIG_SYSCTL=y
|
CONFIG_SYSCTL=y
|
||||||
|
CONFIG_ANON_INODES=y
|
||||||
# CONFIG_EMBEDDED is not set
|
# CONFIG_EMBEDDED is not set
|
||||||
CONFIG_SYSCTL_SYSCALL=y
|
CONFIG_SYSCTL_SYSCALL=y
|
||||||
CONFIG_KALLSYMS=y
|
CONFIG_KALLSYMS=y
|
||||||
# CONFIG_KALLSYMS_ALL is not set
|
# CONFIG_KALLSYMS_ALL is not set
|
||||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||||
|
# CONFIG_STRIP_ASM_SYMS is not set
|
||||||
CONFIG_HOTPLUG=y
|
CONFIG_HOTPLUG=y
|
||||||
CONFIG_PRINTK=y
|
CONFIG_PRINTK=y
|
||||||
CONFIG_BUG=y
|
CONFIG_BUG=y
|
||||||
CONFIG_ELF_CORE=y
|
CONFIG_ELF_CORE=y
|
||||||
# CONFIG_COMPAT_BRK is not set
|
|
||||||
CONFIG_BASE_FULL=y
|
CONFIG_BASE_FULL=y
|
||||||
CONFIG_FUTEX=y
|
CONFIG_FUTEX=y
|
||||||
CONFIG_ANON_INODES=y
|
|
||||||
CONFIG_EPOLL=y
|
CONFIG_EPOLL=y
|
||||||
CONFIG_SIGNALFD=y
|
CONFIG_SIGNALFD=y
|
||||||
CONFIG_TIMERFD=y
|
CONFIG_TIMERFD=y
|
||||||
@ -99,10 +104,12 @@ CONFIG_EVENTFD=y
|
|||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
CONFIG_AIO=y
|
CONFIG_AIO=y
|
||||||
CONFIG_VM_EVENT_COUNTERS=y
|
CONFIG_VM_EVENT_COUNTERS=y
|
||||||
|
# CONFIG_COMPAT_BRK is not set
|
||||||
CONFIG_SLAB=y
|
CONFIG_SLAB=y
|
||||||
# CONFIG_SLUB is not set
|
# CONFIG_SLUB is not set
|
||||||
# CONFIG_SLOB is not set
|
# CONFIG_SLOB is not set
|
||||||
# CONFIG_PROFILING is not set
|
# CONFIG_PROFILING is not set
|
||||||
|
# CONFIG_MARKERS is not set
|
||||||
CONFIG_HAVE_OPROFILE=y
|
CONFIG_HAVE_OPROFILE=y
|
||||||
CONFIG_KPROBES=y
|
CONFIG_KPROBES=y
|
||||||
CONFIG_HAVE_SYSCALL_WRAPPERS=y
|
CONFIG_HAVE_SYSCALL_WRAPPERS=y
|
||||||
@ -111,6 +118,8 @@ CONFIG_HAVE_KPROBES=y
|
|||||||
CONFIG_HAVE_KRETPROBES=y
|
CONFIG_HAVE_KRETPROBES=y
|
||||||
CONFIG_HAVE_ARCH_TRACEHOOK=y
|
CONFIG_HAVE_ARCH_TRACEHOOK=y
|
||||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||||
|
CONFIG_HAVE_DEFAULT_NO_SPIN_MUTEXES=y
|
||||||
|
# CONFIG_SLOW_WORK is not set
|
||||||
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
|
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
|
||||||
CONFIG_SLABINFO=y
|
CONFIG_SLABINFO=y
|
||||||
CONFIG_RT_MUTEXES=y
|
CONFIG_RT_MUTEXES=y
|
||||||
@ -124,7 +133,6 @@ CONFIG_MODVERSIONS=y
|
|||||||
CONFIG_INIT_ALL_POSSIBLE=y
|
CONFIG_INIT_ALL_POSSIBLE=y
|
||||||
CONFIG_STOP_MACHINE=y
|
CONFIG_STOP_MACHINE=y
|
||||||
CONFIG_BLOCK=y
|
CONFIG_BLOCK=y
|
||||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
|
||||||
CONFIG_BLK_DEV_BSG=y
|
CONFIG_BLK_DEV_BSG=y
|
||||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||||
CONFIG_BLOCK_COMPAT=y
|
CONFIG_BLOCK_COMPAT=y
|
||||||
@ -211,11 +219,12 @@ CONFIG_ZONE_DMA_FLAG=1
|
|||||||
CONFIG_BOUNCE=y
|
CONFIG_BOUNCE=y
|
||||||
CONFIG_VIRT_TO_BUS=y
|
CONFIG_VIRT_TO_BUS=y
|
||||||
CONFIG_UNEVICTABLE_LRU=y
|
CONFIG_UNEVICTABLE_LRU=y
|
||||||
|
CONFIG_HAVE_MLOCK=y
|
||||||
|
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# I/O subsystem configuration
|
# I/O subsystem configuration
|
||||||
#
|
#
|
||||||
CONFIG_MACHCHK_WARNING=y
|
|
||||||
CONFIG_QDIO=y
|
CONFIG_QDIO=y
|
||||||
CONFIG_CHSC_SCH=m
|
CONFIG_CHSC_SCH=m
|
||||||
|
|
||||||
@ -247,12 +256,12 @@ CONFIG_S390_HYPFS_FS=y
|
|||||||
CONFIG_KEXEC=y
|
CONFIG_KEXEC=y
|
||||||
# CONFIG_ZFCPDUMP is not set
|
# CONFIG_ZFCPDUMP is not set
|
||||||
CONFIG_S390_GUEST=y
|
CONFIG_S390_GUEST=y
|
||||||
|
CONFIG_SECCOMP=y
|
||||||
CONFIG_NET=y
|
CONFIG_NET=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking options
|
# Networking options
|
||||||
#
|
#
|
||||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
|
||||||
CONFIG_PACKET=y
|
CONFIG_PACKET=y
|
||||||
# CONFIG_PACKET_MMAP is not set
|
# CONFIG_PACKET_MMAP is not set
|
||||||
CONFIG_UNIX=y
|
CONFIG_UNIX=y
|
||||||
@ -374,6 +383,7 @@ CONFIG_SCTP_HMAC_MD5=y
|
|||||||
# CONFIG_LAPB is not set
|
# CONFIG_LAPB is not set
|
||||||
# CONFIG_ECONET is not set
|
# CONFIG_ECONET is not set
|
||||||
# CONFIG_WAN_ROUTER is not set
|
# CONFIG_WAN_ROUTER is not set
|
||||||
|
# CONFIG_PHONET is not set
|
||||||
CONFIG_NET_SCHED=y
|
CONFIG_NET_SCHED=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -438,7 +448,6 @@ CONFIG_CAN_BCM=m
|
|||||||
CONFIG_CAN_VCAN=m
|
CONFIG_CAN_VCAN=m
|
||||||
# CONFIG_CAN_DEBUG_DEVICES is not set
|
# CONFIG_CAN_DEBUG_DEVICES is not set
|
||||||
# CONFIG_AF_RXRPC is not set
|
# CONFIG_AF_RXRPC is not set
|
||||||
# CONFIG_PHONET is not set
|
|
||||||
# CONFIG_WIMAX is not set
|
# CONFIG_WIMAX is not set
|
||||||
# CONFIG_RFKILL is not set
|
# CONFIG_RFKILL is not set
|
||||||
# CONFIG_NET_9P is not set
|
# CONFIG_NET_9P is not set
|
||||||
@ -537,6 +546,7 @@ CONFIG_SCSI_FC_ATTRS=y
|
|||||||
CONFIG_SCSI_LOWLEVEL=y
|
CONFIG_SCSI_LOWLEVEL=y
|
||||||
# CONFIG_ISCSI_TCP is not set
|
# CONFIG_ISCSI_TCP is not set
|
||||||
# CONFIG_LIBFC is not set
|
# CONFIG_LIBFC is not set
|
||||||
|
# CONFIG_LIBFCOE is not set
|
||||||
# CONFIG_SCSI_DEBUG is not set
|
# CONFIG_SCSI_DEBUG is not set
|
||||||
CONFIG_ZFCP=y
|
CONFIG_ZFCP=y
|
||||||
CONFIG_SCSI_DH=m
|
CONFIG_SCSI_DH=m
|
||||||
@ -544,6 +554,10 @@ CONFIG_SCSI_DH_RDAC=m
|
|||||||
CONFIG_SCSI_DH_HP_SW=m
|
CONFIG_SCSI_DH_HP_SW=m
|
||||||
CONFIG_SCSI_DH_EMC=m
|
CONFIG_SCSI_DH_EMC=m
|
||||||
CONFIG_SCSI_DH_ALUA=m
|
CONFIG_SCSI_DH_ALUA=m
|
||||||
|
CONFIG_SCSI_OSD_INITIATOR=m
|
||||||
|
CONFIG_SCSI_OSD_ULD=m
|
||||||
|
CONFIG_SCSI_OSD_DPRINT_SENSE=1
|
||||||
|
# CONFIG_SCSI_OSD_DEBUG is not set
|
||||||
CONFIG_MD=y
|
CONFIG_MD=y
|
||||||
CONFIG_BLK_DEV_MD=y
|
CONFIG_BLK_DEV_MD=y
|
||||||
CONFIG_MD_AUTODETECT=y
|
CONFIG_MD_AUTODETECT=y
|
||||||
@ -564,6 +578,7 @@ CONFIG_DM_MULTIPATH=m
|
|||||||
# CONFIG_DM_DELAY is not set
|
# CONFIG_DM_DELAY is not set
|
||||||
# CONFIG_DM_UEVENT is not set
|
# CONFIG_DM_UEVENT is not set
|
||||||
CONFIG_NETDEVICES=y
|
CONFIG_NETDEVICES=y
|
||||||
|
CONFIG_COMPAT_NET_DEV_OPS=y
|
||||||
# CONFIG_IFB is not set
|
# CONFIG_IFB is not set
|
||||||
CONFIG_DUMMY=m
|
CONFIG_DUMMY=m
|
||||||
CONFIG_BONDING=m
|
CONFIG_BONDING=m
|
||||||
@ -667,6 +682,7 @@ CONFIG_S390_VMUR=m
|
|||||||
# CONFIG_MEMSTICK is not set
|
# CONFIG_MEMSTICK is not set
|
||||||
# CONFIG_NEW_LEDS is not set
|
# CONFIG_NEW_LEDS is not set
|
||||||
CONFIG_ACCESSIBILITY=y
|
CONFIG_ACCESSIBILITY=y
|
||||||
|
# CONFIG_AUXDISPLAY is not set
|
||||||
# CONFIG_STAGING is not set
|
# CONFIG_STAGING is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -676,6 +692,7 @@ CONFIG_EXT2_FS=y
|
|||||||
# CONFIG_EXT2_FS_XATTR is not set
|
# CONFIG_EXT2_FS_XATTR is not set
|
||||||
# CONFIG_EXT2_FS_XIP is not set
|
# CONFIG_EXT2_FS_XIP is not set
|
||||||
CONFIG_EXT3_FS=y
|
CONFIG_EXT3_FS=y
|
||||||
|
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
|
||||||
CONFIG_EXT3_FS_XATTR=y
|
CONFIG_EXT3_FS_XATTR=y
|
||||||
# CONFIG_EXT3_FS_POSIX_ACL is not set
|
# CONFIG_EXT3_FS_POSIX_ACL is not set
|
||||||
# CONFIG_EXT3_FS_SECURITY is not set
|
# CONFIG_EXT3_FS_SECURITY is not set
|
||||||
@ -700,6 +717,11 @@ CONFIG_INOTIFY_USER=y
|
|||||||
# CONFIG_FUSE_FS is not set
|
# CONFIG_FUSE_FS is not set
|
||||||
CONFIG_GENERIC_ACL=y
|
CONFIG_GENERIC_ACL=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Caches
|
||||||
|
#
|
||||||
|
# CONFIG_FSCACHE is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# CD-ROM/DVD Filesystems
|
# CD-ROM/DVD Filesystems
|
||||||
#
|
#
|
||||||
@ -744,6 +766,8 @@ CONFIG_MISC_FILESYSTEMS=y
|
|||||||
# CONFIG_ROMFS_FS is not set
|
# CONFIG_ROMFS_FS is not set
|
||||||
# CONFIG_SYSV_FS is not set
|
# CONFIG_SYSV_FS is not set
|
||||||
# CONFIG_UFS_FS is not set
|
# CONFIG_UFS_FS is not set
|
||||||
|
# CONFIG_EXOFS_FS is not set
|
||||||
|
# CONFIG_NILFS2_FS is not set
|
||||||
CONFIG_NETWORK_FILESYSTEMS=y
|
CONFIG_NETWORK_FILESYSTEMS=y
|
||||||
CONFIG_NFS_FS=y
|
CONFIG_NFS_FS=y
|
||||||
CONFIG_NFS_V3=y
|
CONFIG_NFS_V3=y
|
||||||
@ -758,7 +782,6 @@ CONFIG_LOCKD_V4=y
|
|||||||
CONFIG_EXPORTFS=y
|
CONFIG_EXPORTFS=y
|
||||||
CONFIG_NFS_COMMON=y
|
CONFIG_NFS_COMMON=y
|
||||||
CONFIG_SUNRPC=y
|
CONFIG_SUNRPC=y
|
||||||
# CONFIG_SUNRPC_REGISTER_V4 is not set
|
|
||||||
# CONFIG_RPCSEC_GSS_KRB5 is not set
|
# CONFIG_RPCSEC_GSS_KRB5 is not set
|
||||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||||
# CONFIG_SMB_FS is not set
|
# CONFIG_SMB_FS is not set
|
||||||
@ -806,6 +829,7 @@ CONFIG_MAGIC_SYSRQ=y
|
|||||||
CONFIG_DEBUG_FS=y
|
CONFIG_DEBUG_FS=y
|
||||||
# CONFIG_HEADERS_CHECK is not set
|
# CONFIG_HEADERS_CHECK is not set
|
||||||
CONFIG_DEBUG_KERNEL=y
|
CONFIG_DEBUG_KERNEL=y
|
||||||
|
# CONFIG_DETECT_HUNG_TASK is not set
|
||||||
# CONFIG_SCHED_DEBUG is not set
|
# CONFIG_SCHED_DEBUG is not set
|
||||||
# CONFIG_SCHEDSTATS is not set
|
# CONFIG_SCHEDSTATS is not set
|
||||||
# CONFIG_TIMER_STATS is not set
|
# CONFIG_TIMER_STATS is not set
|
||||||
@ -830,7 +854,6 @@ CONFIG_DEBUG_MEMORY_INIT=y
|
|||||||
# CONFIG_DEBUG_LIST is not set
|
# CONFIG_DEBUG_LIST is not set
|
||||||
# CONFIG_DEBUG_SG is not set
|
# CONFIG_DEBUG_SG is not set
|
||||||
# CONFIG_DEBUG_NOTIFIERS is not set
|
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||||
# CONFIG_FRAME_POINTER is not set
|
|
||||||
# CONFIG_RCU_TORTURE_TEST is not set
|
# CONFIG_RCU_TORTURE_TEST is not set
|
||||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||||
# CONFIG_KPROBES_SANITY_TEST is not set
|
# CONFIG_KPROBES_SANITY_TEST is not set
|
||||||
@ -840,7 +863,9 @@ CONFIG_DEBUG_MEMORY_INIT=y
|
|||||||
# CONFIG_FAULT_INJECTION is not set
|
# CONFIG_FAULT_INJECTION is not set
|
||||||
# CONFIG_LATENCYTOP is not set
|
# CONFIG_LATENCYTOP is not set
|
||||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||||
|
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||||
|
CONFIG_TRACING_SUPPORT=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tracers
|
# Tracers
|
||||||
@ -850,14 +875,17 @@ CONFIG_HAVE_FUNCTION_TRACER=y
|
|||||||
# CONFIG_PREEMPT_TRACER is not set
|
# CONFIG_PREEMPT_TRACER is not set
|
||||||
# CONFIG_SCHED_TRACER is not set
|
# CONFIG_SCHED_TRACER is not set
|
||||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
|
# CONFIG_CONTEXT_SWITCH_TRACER is not set
|
||||||
|
# CONFIG_EVENT_TRACER is not set
|
||||||
# CONFIG_BOOT_TRACER is not set
|
# CONFIG_BOOT_TRACER is not set
|
||||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
||||||
# CONFIG_STACK_TRACER is not set
|
# CONFIG_STACK_TRACER is not set
|
||||||
# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
|
# CONFIG_KMEMTRACE is not set
|
||||||
|
# CONFIG_WORKQUEUE_TRACER is not set
|
||||||
|
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||||
|
# CONFIG_DYNAMIC_DEBUG is not set
|
||||||
CONFIG_SAMPLES=y
|
CONFIG_SAMPLES=y
|
||||||
# CONFIG_SAMPLE_KOBJECT is not set
|
# CONFIG_SAMPLE_KOBJECT is not set
|
||||||
# CONFIG_SAMPLE_KPROBES is not set
|
# CONFIG_SAMPLE_KPROBES is not set
|
||||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Security options
|
# Security options
|
||||||
@ -882,10 +910,12 @@ CONFIG_CRYPTO_HASH=m
|
|||||||
CONFIG_CRYPTO_HASH2=y
|
CONFIG_CRYPTO_HASH2=y
|
||||||
CONFIG_CRYPTO_RNG=m
|
CONFIG_CRYPTO_RNG=m
|
||||||
CONFIG_CRYPTO_RNG2=y
|
CONFIG_CRYPTO_RNG2=y
|
||||||
|
CONFIG_CRYPTO_PCOMP=y
|
||||||
CONFIG_CRYPTO_MANAGER=y
|
CONFIG_CRYPTO_MANAGER=y
|
||||||
CONFIG_CRYPTO_MANAGER2=y
|
CONFIG_CRYPTO_MANAGER2=y
|
||||||
CONFIG_CRYPTO_GF128MUL=m
|
CONFIG_CRYPTO_GF128MUL=m
|
||||||
# CONFIG_CRYPTO_NULL is not set
|
# CONFIG_CRYPTO_NULL is not set
|
||||||
|
CONFIG_CRYPTO_WORKQUEUE=y
|
||||||
# CONFIG_CRYPTO_CRYPTD is not set
|
# CONFIG_CRYPTO_CRYPTD is not set
|
||||||
CONFIG_CRYPTO_AUTHENC=m
|
CONFIG_CRYPTO_AUTHENC=m
|
||||||
# CONFIG_CRYPTO_TEST is not set
|
# CONFIG_CRYPTO_TEST is not set
|
||||||
@ -954,6 +984,7 @@ CONFIG_CRYPTO_SEED=m
|
|||||||
# Compression
|
# Compression
|
||||||
#
|
#
|
||||||
# CONFIG_CRYPTO_DEFLATE is not set
|
# CONFIG_CRYPTO_DEFLATE is not set
|
||||||
|
CONFIG_CRYPTO_ZLIB=m
|
||||||
CONFIG_CRYPTO_LZO=m
|
CONFIG_CRYPTO_LZO=m
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -969,6 +1000,7 @@ CONFIG_CRYPTO_SHA512_S390=m
|
|||||||
# CONFIG_CRYPTO_DES_S390 is not set
|
# CONFIG_CRYPTO_DES_S390 is not set
|
||||||
# CONFIG_CRYPTO_AES_S390 is not set
|
# CONFIG_CRYPTO_AES_S390 is not set
|
||||||
CONFIG_S390_PRNG=m
|
CONFIG_S390_PRNG=m
|
||||||
|
# CONFIG_BINARY_PRINTF is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Library routines
|
# Library routines
|
||||||
@ -982,9 +1014,14 @@ CONFIG_CRC_T10DIF=y
|
|||||||
CONFIG_CRC32=m
|
CONFIG_CRC32=m
|
||||||
CONFIG_CRC7=m
|
CONFIG_CRC7=m
|
||||||
CONFIG_LIBCRC32C=m
|
CONFIG_LIBCRC32C=m
|
||||||
|
CONFIG_ZLIB_INFLATE=y
|
||||||
|
CONFIG_ZLIB_DEFLATE=m
|
||||||
CONFIG_LZO_COMPRESS=m
|
CONFIG_LZO_COMPRESS=m
|
||||||
CONFIG_LZO_DECOMPRESS=m
|
CONFIG_LZO_DECOMPRESS=m
|
||||||
CONFIG_PLIST=y
|
CONFIG_DECOMPRESS_GZIP=y
|
||||||
|
CONFIG_DECOMPRESS_BZIP2=y
|
||||||
|
CONFIG_DECOMPRESS_LZMA=y
|
||||||
|
CONFIG_NLATTR=y
|
||||||
CONFIG_HAVE_KVM=y
|
CONFIG_HAVE_KVM=y
|
||||||
CONFIG_VIRTUALIZATION=y
|
CONFIG_VIRTUALIZATION=y
|
||||||
CONFIG_KVM=m
|
CONFIG_KVM=m
|
||||||
|
@ -174,4 +174,8 @@ cputime64_to_clock_t(cputime64_t cputime)
|
|||||||
return __div(cputime, 4096000000ULL / USER_HZ);
|
return __div(cputime, 4096000000ULL / USER_HZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cputime64_t s390_get_idle_time(int cpu);
|
||||||
|
|
||||||
|
#define arch_idle_time(cpu) s390_get_idle_time(cpu)
|
||||||
|
|
||||||
#endif /* _S390_CPUTIME_H */
|
#endif /* _S390_CPUTIME_H */
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include <asm/ebcdic.h>
|
#include <asm/ebcdic.h>
|
||||||
#include <asm/reset.h>
|
#include <asm/reset.h>
|
||||||
#include <asm/sclp.h>
|
#include <asm/sclp.h>
|
||||||
|
#include <asm/sigp.h>
|
||||||
#include <asm/checksum.h>
|
#include <asm/checksum.h>
|
||||||
|
|
||||||
#define IPL_PARM_BLOCK_VERSION 0
|
#define IPL_PARM_BLOCK_VERSION 0
|
||||||
|
@ -240,6 +240,22 @@ void vtime_stop_cpu(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cputime64_t s390_get_idle_time(int cpu)
|
||||||
|
{
|
||||||
|
struct s390_idle_data *idle;
|
||||||
|
unsigned long long now, idle_time, idle_enter;
|
||||||
|
|
||||||
|
idle = &per_cpu(s390_idle, cpu);
|
||||||
|
spin_lock(&idle->lock);
|
||||||
|
now = get_clock();
|
||||||
|
idle_time = 0;
|
||||||
|
idle_enter = idle->idle_enter;
|
||||||
|
if (idle_enter != 0ULL && idle_enter < now)
|
||||||
|
idle_time = now - idle_enter;
|
||||||
|
spin_unlock(&idle->lock);
|
||||||
|
return idle_time;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Sorted add to a list. List is linear searched until first bigger
|
* Sorted add to a list. List is linear searched until first bigger
|
||||||
* element is found.
|
* element is found.
|
||||||
|
@ -285,7 +285,7 @@ extern int tape_mtop(struct tape_device *, int, int);
|
|||||||
extern void tape_state_set(struct tape_device *, enum tape_state);
|
extern void tape_state_set(struct tape_device *, enum tape_state);
|
||||||
|
|
||||||
extern int tape_generic_online(struct tape_device *, struct tape_discipline *);
|
extern int tape_generic_online(struct tape_device *, struct tape_discipline *);
|
||||||
extern int tape_generic_offline(struct tape_device *device);
|
extern int tape_generic_offline(struct ccw_device *);
|
||||||
|
|
||||||
/* Externals from tape_devmap.c */
|
/* Externals from tape_devmap.c */
|
||||||
extern int tape_generic_probe(struct ccw_device *);
|
extern int tape_generic_probe(struct ccw_device *);
|
||||||
|
@ -1294,12 +1294,6 @@ tape_34xx_online(struct ccw_device *cdev)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
tape_34xx_offline(struct ccw_device *cdev)
|
|
||||||
{
|
|
||||||
return tape_generic_offline(cdev->dev.driver_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct ccw_driver tape_34xx_driver = {
|
static struct ccw_driver tape_34xx_driver = {
|
||||||
.name = "tape_34xx",
|
.name = "tape_34xx",
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
@ -1307,7 +1301,7 @@ static struct ccw_driver tape_34xx_driver = {
|
|||||||
.probe = tape_generic_probe,
|
.probe = tape_generic_probe,
|
||||||
.remove = tape_generic_remove,
|
.remove = tape_generic_remove,
|
||||||
.set_online = tape_34xx_online,
|
.set_online = tape_34xx_online,
|
||||||
.set_offline = tape_34xx_offline,
|
.set_offline = tape_generic_offline,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -1707,19 +1707,13 @@ tape_3590_online(struct ccw_device *cdev)
|
|||||||
&tape_discipline_3590);
|
&tape_discipline_3590);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
tape_3590_offline(struct ccw_device *cdev)
|
|
||||||
{
|
|
||||||
return tape_generic_offline(cdev->dev.driver_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct ccw_driver tape_3590_driver = {
|
static struct ccw_driver tape_3590_driver = {
|
||||||
.name = "tape_3590",
|
.name = "tape_3590",
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
.ids = tape_3590_ids,
|
.ids = tape_3590_ids,
|
||||||
.probe = tape_generic_probe,
|
.probe = tape_generic_probe,
|
||||||
.remove = tape_generic_remove,
|
.remove = tape_generic_remove,
|
||||||
.set_offline = tape_3590_offline,
|
.set_offline = tape_generic_offline,
|
||||||
.set_online = tape_3590_online,
|
.set_online = tape_3590_online,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -387,8 +387,11 @@ tape_cleanup_device(struct tape_device *device)
|
|||||||
* Manual offline is only allowed while the drive is not in use.
|
* Manual offline is only allowed while the drive is not in use.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
tape_generic_offline(struct tape_device *device)
|
tape_generic_offline(struct ccw_device *cdev)
|
||||||
{
|
{
|
||||||
|
struct tape_device *device;
|
||||||
|
|
||||||
|
device = cdev->dev.driver_data;
|
||||||
if (!device) {
|
if (!device) {
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,9 @@
|
|||||||
#ifndef arch_irq_stat
|
#ifndef arch_irq_stat
|
||||||
#define arch_irq_stat() 0
|
#define arch_irq_stat() 0
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef arch_idle_time
|
||||||
|
#define arch_idle_time(cpu) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
static int show_stat(struct seq_file *p, void *v)
|
static int show_stat(struct seq_file *p, void *v)
|
||||||
{
|
{
|
||||||
@ -40,6 +43,7 @@ static int show_stat(struct seq_file *p, void *v)
|
|||||||
nice = cputime64_add(nice, kstat_cpu(i).cpustat.nice);
|
nice = cputime64_add(nice, kstat_cpu(i).cpustat.nice);
|
||||||
system = cputime64_add(system, kstat_cpu(i).cpustat.system);
|
system = cputime64_add(system, kstat_cpu(i).cpustat.system);
|
||||||
idle = cputime64_add(idle, kstat_cpu(i).cpustat.idle);
|
idle = cputime64_add(idle, kstat_cpu(i).cpustat.idle);
|
||||||
|
idle = cputime64_add(idle, arch_idle_time(i));
|
||||||
iowait = cputime64_add(iowait, kstat_cpu(i).cpustat.iowait);
|
iowait = cputime64_add(iowait, kstat_cpu(i).cpustat.iowait);
|
||||||
irq = cputime64_add(irq, kstat_cpu(i).cpustat.irq);
|
irq = cputime64_add(irq, kstat_cpu(i).cpustat.irq);
|
||||||
softirq = cputime64_add(softirq, kstat_cpu(i).cpustat.softirq);
|
softirq = cputime64_add(softirq, kstat_cpu(i).cpustat.softirq);
|
||||||
@ -69,6 +73,7 @@ static int show_stat(struct seq_file *p, void *v)
|
|||||||
nice = kstat_cpu(i).cpustat.nice;
|
nice = kstat_cpu(i).cpustat.nice;
|
||||||
system = kstat_cpu(i).cpustat.system;
|
system = kstat_cpu(i).cpustat.system;
|
||||||
idle = kstat_cpu(i).cpustat.idle;
|
idle = kstat_cpu(i).cpustat.idle;
|
||||||
|
idle = cputime64_add(idle, arch_idle_time(i));
|
||||||
iowait = kstat_cpu(i).cpustat.iowait;
|
iowait = kstat_cpu(i).cpustat.iowait;
|
||||||
irq = kstat_cpu(i).cpustat.irq;
|
irq = kstat_cpu(i).cpustat.irq;
|
||||||
softirq = kstat_cpu(i).cpustat.softirq;
|
softirq = kstat_cpu(i).cpustat.softirq;
|
||||||
|
@ -440,7 +440,7 @@ config LOCKDEP
|
|||||||
bool
|
bool
|
||||||
depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
|
depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
|
||||||
select STACKTRACE
|
select STACKTRACE
|
||||||
select FRAME_POINTER if !X86 && !MIPS && !PPC && !ARM_UNWIND
|
select FRAME_POINTER if !X86 && !MIPS && !PPC && !ARM_UNWIND && !S390
|
||||||
select KALLSYMS
|
select KALLSYMS
|
||||||
select KALLSYMS_ALL
|
select KALLSYMS_ALL
|
||||||
|
|
||||||
@ -620,7 +620,7 @@ config ARCH_WANT_FRAME_POINTERS
|
|||||||
config FRAME_POINTER
|
config FRAME_POINTER
|
||||||
bool "Compile the kernel with frame pointers"
|
bool "Compile the kernel with frame pointers"
|
||||||
depends on DEBUG_KERNEL && \
|
depends on DEBUG_KERNEL && \
|
||||||
(CRIS || M68K || M68KNOMMU || FRV || UML || S390 || \
|
(CRIS || M68K || M68KNOMMU || FRV || UML || \
|
||||||
AVR32 || SUPERH || BLACKFIN || MN10300) || \
|
AVR32 || SUPERH || BLACKFIN || MN10300) || \
|
||||||
ARCH_WANT_FRAME_POINTERS
|
ARCH_WANT_FRAME_POINTERS
|
||||||
default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
|
default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
|
||||||
@ -809,13 +809,13 @@ config FAULT_INJECTION_STACKTRACE_FILTER
|
|||||||
depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
|
depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
|
||||||
depends on !X86_64
|
depends on !X86_64
|
||||||
select STACKTRACE
|
select STACKTRACE
|
||||||
select FRAME_POINTER if !PPC
|
select FRAME_POINTER if !PPC && !S390
|
||||||
help
|
help
|
||||||
Provide stacktrace filter for fault-injection capabilities
|
Provide stacktrace filter for fault-injection capabilities
|
||||||
|
|
||||||
config LATENCYTOP
|
config LATENCYTOP
|
||||||
bool "Latency measuring infrastructure"
|
bool "Latency measuring infrastructure"
|
||||||
select FRAME_POINTER if !MIPS && !PPC
|
select FRAME_POINTER if !MIPS && !PPC && !S390
|
||||||
select KALLSYMS
|
select KALLSYMS
|
||||||
select KALLSYMS_ALL
|
select KALLSYMS_ALL
|
||||||
select STACKTRACE
|
select STACKTRACE
|
||||||
|
Loading…
Reference in New Issue
Block a user