You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6: (85 commits) [S390] provide documentation for hvc_iucv kernel parameter. [S390] convert ctcm printks to dev_xxx and pr_xxx macros. [S390] convert zfcp printks to pr_xxx macros. [S390] convert vmlogrdr printks to pr_xxx macros. [S390] convert zfcp dumper printks to pr_xxx macros. [S390] convert cpu related printks to pr_xxx macros. [S390] convert qeth printks to dev_xxx and pr_xxx macros. [S390] convert sclp printks to pr_xxx macros. [S390] convert iucv printks to dev_xxx and pr_xxx macros. [S390] convert ap_bus printks to pr_xxx macros. [S390] convert dcssblk and extmem printks messages to pr_xxx macros. [S390] convert monwriter printks to pr_xxx macros. [S390] convert s390 debug feature printks to pr_xxx macros. [S390] convert monreader printks to pr_xxx macros. [S390] convert appldata printks to pr_xxx macros. [S390] convert setup printks to pr_xxx macros. [S390] convert hypfs printks to pr_xxx macros. [S390] convert time printks to pr_xxx macros. [S390] convert cpacf printks to pr_xxx macros. [S390] convert cio printks to pr_xxx macros. ...
This commit is contained in:
@@ -823,6 +823,9 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||
|
||||
hlt [BUGS=ARM,SH]
|
||||
|
||||
hvc_iucv= [S390] Number of z/VM IUCV Hypervisor console (HVC)
|
||||
back-ends. Valid parameters: 0..8
|
||||
|
||||
i8042.debug [HW] Toggle i8042 debug mode
|
||||
i8042.direct [HW] Put keyboard port into non-translated mode
|
||||
i8042.dumbkbd [HW] Pretend that controller can only read data from
|
||||
@@ -2292,6 +2295,14 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||
See comment before function dc390_setup() in
|
||||
drivers/scsi/tmscsim.c.
|
||||
|
||||
topology= [S390]
|
||||
Format: {off | on}
|
||||
Specify if the kernel should make use of the cpu
|
||||
topology informations if the hardware supports these.
|
||||
The scheduler will make use of these informations and
|
||||
e.g. base its process migration decisions on it.
|
||||
Default is off.
|
||||
|
||||
tp720= [HW,PS2]
|
||||
|
||||
trix= [HW,OSS] MediaTrix AudioTrix Pro
|
||||
|
||||
@@ -267,7 +267,7 @@ extern int ucache_bsize;
|
||||
#define ARCH_HAS_SETUP_ADDITIONAL_PAGES
|
||||
struct linux_binprm;
|
||||
extern int arch_setup_additional_pages(struct linux_binprm *bprm,
|
||||
int executable_stack);
|
||||
int uses_interp);
|
||||
#define VDSO_AUX_ENT(a,b) NEW_AUX_ENT(a,b);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
@@ -184,8 +184,7 @@ static void dump_vdso_pages(struct vm_area_struct * vma)
|
||||
* This is called from binfmt_elf, we create the special vma for the
|
||||
* vDSO and insert it into the mm struct tree
|
||||
*/
|
||||
int arch_setup_additional_pages(struct linux_binprm *bprm,
|
||||
int executable_stack)
|
||||
int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
|
||||
{
|
||||
struct mm_struct *mm = current->mm;
|
||||
struct page **vdso_pagelist;
|
||||
|
||||
+17
-24
@@ -43,6 +43,9 @@ config GENERIC_HWEIGHT
|
||||
config GENERIC_TIME
|
||||
def_bool y
|
||||
|
||||
config GENERIC_TIME_VSYSCALL
|
||||
def_bool y
|
||||
|
||||
config GENERIC_CLOCKEVENTS
|
||||
def_bool y
|
||||
|
||||
@@ -66,10 +69,15 @@ config PGSTE
|
||||
bool
|
||||
default y if KVM
|
||||
|
||||
config VIRT_CPU_ACCOUNTING
|
||||
def_bool y
|
||||
|
||||
mainmenu "Linux Kernel Configuration"
|
||||
|
||||
config S390
|
||||
def_bool y
|
||||
select USE_GENERIC_SMP_HELPERS if SMP
|
||||
select HAVE_FUNCTION_TRACER
|
||||
select HAVE_OPROFILE
|
||||
select HAVE_KPROBES
|
||||
select HAVE_KRETPROBES
|
||||
@@ -225,6 +233,14 @@ config MARCH_Z9_109
|
||||
Class (z9 BC). The kernel will be slightly faster but will not
|
||||
work on older machines such as the z990, z890, z900, and z800.
|
||||
|
||||
config MARCH_Z10
|
||||
bool "IBM System z10"
|
||||
help
|
||||
Select this to enable optimizations for IBM System z10. The
|
||||
kernel will be slightly faster but will not work on older
|
||||
machines such as the z990, z890, z900, z800, z9-109, z9-ec
|
||||
and z9-bc.
|
||||
|
||||
endchoice
|
||||
|
||||
config PACK_STACK
|
||||
@@ -343,16 +359,6 @@ config QDIO
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config QDIO_DEBUG
|
||||
bool "Extended debugging information"
|
||||
depends on QDIO
|
||||
help
|
||||
Say Y here to get extended debugging output in
|
||||
/sys/kernel/debug/s390dbf/qdio...
|
||||
Warning: this option reduces the performance of the QDIO module.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
config CHSC_SCH
|
||||
tristate "Support for CHSC subchannels"
|
||||
help
|
||||
@@ -466,22 +472,9 @@ config PAGE_STATES
|
||||
hypervisor. The ESSA instruction is used to do the states
|
||||
changes between a page that has content and the unused state.
|
||||
|
||||
config VIRT_TIMER
|
||||
bool "Virtual CPU timer support"
|
||||
help
|
||||
This provides a kernel interface for virtual CPU timers.
|
||||
Default is disabled.
|
||||
|
||||
config VIRT_CPU_ACCOUNTING
|
||||
bool "Base user process accounting on virtual cpu timer"
|
||||
depends on VIRT_TIMER
|
||||
help
|
||||
Select this option to use CPU timer deltas to do user
|
||||
process accounting.
|
||||
|
||||
config APPLDATA_BASE
|
||||
bool "Linux - VM Monitor Stream, base infrastructure"
|
||||
depends on PROC_FS && VIRT_TIMER=y
|
||||
depends on PROC_FS
|
||||
help
|
||||
This provides a kernel interface for creating and updating z/VM APPLDATA
|
||||
monitor records. The monitor records are updated at certain time
|
||||
|
||||
@@ -34,6 +34,7 @@ cflags-$(CONFIG_MARCH_G5) += $(call cc-option,-march=g5)
|
||||
cflags-$(CONFIG_MARCH_Z900) += $(call cc-option,-march=z900)
|
||||
cflags-$(CONFIG_MARCH_Z990) += $(call cc-option,-march=z990)
|
||||
cflags-$(CONFIG_MARCH_Z9_109) += $(call cc-option,-march=z9-109)
|
||||
cflags-$(CONFIG_MARCH_Z10) += $(call cc-option,-march=z10)
|
||||
|
||||
#KBUILD_IMAGE is necessary for make rpm
|
||||
KBUILD_IMAGE :=arch/s390/boot/image
|
||||
|
||||
@@ -26,10 +26,6 @@
|
||||
#define CTL_APPLDATA_NET_SUM 2125
|
||||
#define CTL_APPLDATA_PROC 2126
|
||||
|
||||
#define P_INFO(x...) printk(KERN_INFO MY_PRINT_NAME " info: " x)
|
||||
#define P_ERROR(x...) printk(KERN_ERR MY_PRINT_NAME " error: " x)
|
||||
#define P_WARNING(x...) printk(KERN_WARNING MY_PRINT_NAME " status: " x)
|
||||
|
||||
struct appldata_ops {
|
||||
struct list_head list;
|
||||
struct ctl_table_header *sysctl_header;
|
||||
|
||||
@@ -10,6 +10,9 @@
|
||||
* Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
|
||||
*/
|
||||
|
||||
#define KMSG_COMPONENT "appldata"
|
||||
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
@@ -32,7 +35,6 @@
|
||||
#include "appldata.h"
|
||||
|
||||
|
||||
#define MY_PRINT_NAME "appldata" /* for debug messages, etc. */
|
||||
#define APPLDATA_CPU_INTERVAL 10000 /* default (CPU) time for
|
||||
sampling interval in
|
||||
milliseconds */
|
||||
@@ -390,8 +392,8 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
|
||||
(unsigned long) ops->data, ops->size,
|
||||
ops->mod_lvl);
|
||||
if (rc != 0) {
|
||||
P_ERROR("START DIAG 0xDC for %s failed, "
|
||||
"return code: %d\n", ops->name, rc);
|
||||
pr_err("Starting the data collection for %s "
|
||||
"failed with rc=%d\n", ops->name, rc);
|
||||
module_put(ops->owner);
|
||||
} else
|
||||
ops->active = 1;
|
||||
@@ -401,8 +403,8 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
|
||||
(unsigned long) ops->data, ops->size,
|
||||
ops->mod_lvl);
|
||||
if (rc != 0)
|
||||
P_ERROR("STOP DIAG 0xDC for %s failed, "
|
||||
"return code: %d\n", ops->name, rc);
|
||||
pr_err("Stopping the data collection for %s "
|
||||
"failed with rc=%d\n", ops->name, rc);
|
||||
module_put(ops->owner);
|
||||
}
|
||||
spin_unlock(&appldata_ops_lock);
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
* Author: Gerald Schaefer <gerald.schaefer@de.ibm.com>
|
||||
*/
|
||||
|
||||
#define KMSG_COMPONENT "appldata"
|
||||
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
@@ -22,7 +25,6 @@
|
||||
#include "appldata.h"
|
||||
|
||||
|
||||
#define MY_PRINT_NAME "appldata_os" /* for debug messages, etc. */
|
||||
#define LOAD_INT(x) ((x) >> FSHIFT)
|
||||
#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)
|
||||
|
||||
@@ -143,21 +145,16 @@ static void appldata_get_os_data(void *data)
|
||||
(unsigned long) ops.data, new_size,
|
||||
ops.mod_lvl);
|
||||
if (rc != 0)
|
||||
P_ERROR("os: START NEW DIAG 0xDC failed, "
|
||||
"return code: %d, new size = %i\n", rc,
|
||||
new_size);
|
||||
pr_err("Starting a new OS data collection "
|
||||
"failed with rc=%d\n", rc);
|
||||
|
||||
rc = appldata_diag(APPLDATA_RECORD_OS_ID,
|
||||
APPLDATA_STOP_REC,
|
||||
(unsigned long) ops.data, ops.size,
|
||||
ops.mod_lvl);
|
||||
if (rc != 0)
|
||||
P_ERROR("os: STOP OLD DIAG 0xDC failed, "
|
||||
"return code: %d, old size = %i\n", rc,
|
||||
ops.size);
|
||||
else
|
||||
P_INFO("os: old record size = %i stopped\n",
|
||||
ops.size);
|
||||
pr_err("Stopping a faulty OS data "
|
||||
"collection failed with rc=%d\n", rc);
|
||||
}
|
||||
ops.size = new_size;
|
||||
}
|
||||
@@ -178,8 +175,8 @@ static int __init appldata_os_init(void)
|
||||
max_size = sizeof(struct appldata_os_data) +
|
||||
(NR_CPUS * sizeof(struct appldata_os_per_cpu));
|
||||
if (max_size > APPLDATA_MAX_REC_SIZE) {
|
||||
P_ERROR("Max. size of OS record = %i, bigger than maximum "
|
||||
"record size (%i)\n", max_size, APPLDATA_MAX_REC_SIZE);
|
||||
pr_err("Maximum OS record size %i exceeds the maximum "
|
||||
"record size %i\n", max_size, APPLDATA_MAX_REC_SIZE);
|
||||
rc = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#define KMSG_COMPONENT "aes_s390"
|
||||
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
||||
|
||||
#include <crypto/aes.h>
|
||||
#include <crypto/algapi.h>
|
||||
#include <linux/err.h>
|
||||
@@ -169,7 +172,8 @@ static int fallback_init_cip(struct crypto_tfm *tfm)
|
||||
CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK);
|
||||
|
||||
if (IS_ERR(sctx->fallback.cip)) {
|
||||
printk(KERN_ERR "Error allocating fallback algo %s\n", name);
|
||||
pr_err("Allocating AES fallback algorithm %s failed\n",
|
||||
name);
|
||||
return PTR_ERR(sctx->fallback.blk);
|
||||
}
|
||||
|
||||
@@ -349,7 +353,8 @@ static int fallback_init_blk(struct crypto_tfm *tfm)
|
||||
CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK);
|
||||
|
||||
if (IS_ERR(sctx->fallback.blk)) {
|
||||
printk(KERN_ERR "Error allocating fallback algo %s\n", name);
|
||||
pr_err("Allocating AES fallback algorithm %s failed\n",
|
||||
name);
|
||||
return PTR_ERR(sctx->fallback.blk);
|
||||
}
|
||||
|
||||
@@ -515,9 +520,8 @@ static int __init aes_s390_init(void)
|
||||
|
||||
/* z9 109 and z9 BC/EC only support 128 bit key length */
|
||||
if (keylen_flag == AES_KEYLEN_128)
|
||||
printk(KERN_INFO
|
||||
"aes_s390: hardware acceleration only available for "
|
||||
"128 bit keys\n");
|
||||
pr_info("AES hardware acceleration is only available for"
|
||||
" 128-bit keys\n");
|
||||
|
||||
ret = crypto_register_alg(&aes_alg);
|
||||
if (ret)
|
||||
|
||||
@@ -3,10 +3,13 @@
|
||||
* Hypervisor filesystem for Linux on s390. Diag 204 and 224
|
||||
* implementation.
|
||||
*
|
||||
* Copyright (C) IBM Corp. 2006
|
||||
* Copyright IBM Corp. 2006, 2008
|
||||
* Author(s): Michael Holzheu <holzheu@de.ibm.com>
|
||||
*/
|
||||
|
||||
#define KMSG_COMPONENT "hypfs"
|
||||
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/string.h>
|
||||
@@ -527,13 +530,14 @@ __init int hypfs_diag_init(void)
|
||||
int rc;
|
||||
|
||||
if (diag204_probe()) {
|
||||
printk(KERN_ERR "hypfs: diag 204 not working.");
|
||||
pr_err("The hardware system does not support hypfs\n");
|
||||
return -ENODATA;
|
||||
}
|
||||
rc = diag224_get_name_table();
|
||||
if (rc) {
|
||||
diag204_free_buffer();
|
||||
printk(KERN_ERR "hypfs: could not get name table.\n");
|
||||
pr_err("The hardware system does not provide all "
|
||||
"functions required by hypfs\n");
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -2,10 +2,13 @@
|
||||
* arch/s390/hypfs/inode.c
|
||||
* Hypervisor filesystem for Linux on s390.
|
||||
*
|
||||
* Copyright (C) IBM Corp. 2006
|
||||
* Copyright IBM Corp. 2006, 2008
|
||||
* Author(s): Michael Holzheu <holzheu@de.ibm.com>
|
||||
*/
|
||||
|
||||
#define KMSG_COMPONENT "hypfs"
|
||||
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/fs.h>
|
||||
@@ -200,7 +203,7 @@ static ssize_t hypfs_aio_write(struct kiocb *iocb, const struct iovec *iov,
|
||||
else
|
||||
rc = hypfs_diag_create_files(sb, sb->s_root);
|
||||
if (rc) {
|
||||
printk(KERN_ERR "hypfs: Update failed\n");
|
||||
pr_err("Updating the hypfs tree failed\n");
|
||||
hypfs_delete_tree(sb->s_root);
|
||||
goto out;
|
||||
}
|
||||
@@ -252,8 +255,7 @@ static int hypfs_parse_options(char *options, struct super_block *sb)
|
||||
break;
|
||||
case opt_err:
|
||||
default:
|
||||
printk(KERN_ERR "hypfs: Unrecognized mount option "
|
||||
"\"%s\" or missing value\n", str);
|
||||
pr_err("%s is not a valid mount option\n", str);
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
@@ -317,7 +319,7 @@ static int hypfs_fill_super(struct super_block *sb, void *data, int silent)
|
||||
}
|
||||
hypfs_update_update(sb);
|
||||
sb->s_root = root_dentry;
|
||||
printk(KERN_INFO "hypfs: Hypervisor filesystem mounted\n");
|
||||
pr_info("Hypervisor filesystem mounted\n");
|
||||
return 0;
|
||||
|
||||
err_tree:
|
||||
@@ -513,7 +515,7 @@ fail_sysfs:
|
||||
if (!MACHINE_IS_VM)
|
||||
hypfs_diag_exit();
|
||||
fail_diag:
|
||||
printk(KERN_ERR "hypfs: Initialization failed with rc = %i.\n", rc);
|
||||
pr_err("Initialization of hypfs failed with rc=%i\n", rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
#ifndef __ASMS390_AUXVEC_H
|
||||
#define __ASMS390_AUXVEC_H
|
||||
|
||||
#define AT_SYSINFO_EHDR 33
|
||||
|
||||
#endif
|
||||
|
||||
@@ -47,7 +47,10 @@
|
||||
|
||||
#endif /* CONFIG_DEBUG_BUGVERBOSE */
|
||||
|
||||
#define BUG() __EMIT_BUG(0)
|
||||
#define BUG() do { \
|
||||
__EMIT_BUG(0); \
|
||||
for (;;); \
|
||||
} while (0)
|
||||
|
||||
#define WARN_ON(x) ({ \
|
||||
int __ret_warn_on = !!(x); \
|
||||
|
||||
@@ -11,32 +11,39 @@
|
||||
|
||||
#include <asm/types.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define __BIG_ENDIAN
|
||||
|
||||
#ifndef __s390x__
|
||||
# define __SWAB_64_THRU_32__
|
||||
#endif
|
||||
|
||||
#ifdef __s390x__
|
||||
static inline __u64 ___arch__swab64p(const __u64 *x)
|
||||
static inline __u64 __arch_swab64p(const __u64 *x)
|
||||
{
|
||||
__u64 result;
|
||||
|
||||
asm volatile("lrvg %0,%1" : "=d" (result) : "m" (*x));
|
||||
return result;
|
||||
}
|
||||
#define __arch_swab64p __arch_swab64p
|
||||
|
||||
static inline __u64 ___arch__swab64(__u64 x)
|
||||
static inline __u64 __arch_swab64(__u64 x)
|
||||
{
|
||||
__u64 result;
|
||||
|
||||
asm volatile("lrvgr %0,%1" : "=d" (result) : "d" (x));
|
||||
return result;
|
||||
}
|
||||
#define __arch_swab64 __arch_swab64
|
||||
|
||||
static inline void ___arch__swab64s(__u64 *x)
|
||||
static inline void __arch_swab64s(__u64 *x)
|
||||
{
|
||||
*x = ___arch__swab64p(x);
|
||||
*x = __arch_swab64p(x);
|
||||
}
|
||||
#define __arch_swab64s __arch_swab64s
|
||||
#endif /* __s390x__ */
|
||||
|
||||
static inline __u32 ___arch__swab32p(const __u32 *x)
|
||||
static inline __u32 __arch_swab32p(const __u32 *x)
|
||||
{
|
||||
__u32 result;
|
||||
|
||||
@@ -53,25 +60,20 @@ static inline __u32 ___arch__swab32p(const __u32 *x)
|
||||
#endif /* __s390x__ */
|
||||
return result;
|
||||
}
|
||||
#define __arch_swab32p __arch_swab32p
|
||||
|
||||
static inline __u32 ___arch__swab32(__u32 x)
|
||||
#ifdef __s390x__
|
||||
static inline __u32 __arch_swab32(__u32 x)
|
||||
{
|
||||
#ifndef __s390x__
|
||||
return ___arch__swab32p(&x);
|
||||
#else /* __s390x__ */
|
||||
__u32 result;
|
||||
|
||||
asm volatile("lrvr %0,%1" : "=d" (result) : "d" (x));
|
||||
return result;
|
||||
}
|
||||
#define __arch_swab32 __arch_swab32
|
||||
#endif /* __s390x__ */
|
||||
}
|
||||
|
||||
static __inline__ void ___arch__swab32s(__u32 *x)
|
||||
{
|
||||
*x = ___arch__swab32p(x);
|
||||
}
|
||||
|
||||
static __inline__ __u16 ___arch__swab16p(const __u16 *x)
|
||||
static inline __u16 __arch_swab16p(const __u16 *x)
|
||||
{
|
||||
__u16 result;
|
||||
|
||||
@@ -86,40 +88,8 @@ static __inline__ __u16 ___arch__swab16p(const __u16 *x)
|
||||
#endif /* __s390x__ */
|
||||
return result;
|
||||
}
|
||||
#define __arch_swab16p __arch_swab16p
|
||||
|
||||
static __inline__ __u16 ___arch__swab16(__u16 x)
|
||||
{
|
||||
return ___arch__swab16p(&x);
|
||||
}
|
||||
|
||||
static __inline__ void ___arch__swab16s(__u16 *x)
|
||||
{
|
||||
*x = ___arch__swab16p(x);
|
||||
}
|
||||
|
||||
#ifdef __s390x__
|
||||
#define __arch__swab64(x) ___arch__swab64(x)
|
||||
#define __arch__swab64p(x) ___arch__swab64p(x)
|
||||
#define __arch__swab64s(x) ___arch__swab64s(x)
|
||||
#endif /* __s390x__ */
|
||||
#define __arch__swab32(x) ___arch__swab32(x)
|
||||
#define __arch__swab16(x) ___arch__swab16(x)
|
||||
#define __arch__swab32p(x) ___arch__swab32p(x)
|
||||
#define __arch__swab16p(x) ___arch__swab16p(x)
|
||||
#define __arch__swab32s(x) ___arch__swab32s(x)
|
||||
#define __arch__swab16s(x) ___arch__swab16s(x)
|
||||
|
||||
#ifndef __s390x__
|
||||
#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
|
||||
# define __BYTEORDER_HAS_U64__
|
||||
# define __SWAB_64_THRU_32__
|
||||
#endif
|
||||
#else /* __s390x__ */
|
||||
#define __BYTEORDER_HAS_U64__
|
||||
#endif /* __s390x__ */
|
||||
|
||||
#endif /* __GNUC__ */
|
||||
|
||||
#include <linux/byteorder/big_endian.h>
|
||||
#include <linux/byteorder.h>
|
||||
|
||||
#endif /* _S390_BYTEORDER_H */
|
||||
|
||||
@@ -120,6 +120,10 @@ typedef s390_compat_regs compat_elf_gregset_t;
|
||||
#include <asm/system.h> /* for save_access_regs */
|
||||
#include <asm/mmu_context.h>
|
||||
|
||||
#include <asm/vdso.h>
|
||||
|
||||
extern unsigned int vdso_enabled;
|
||||
|
||||
/*
|
||||
* This is used to ensure we don't load something for the wrong architecture.
|
||||
*/
|
||||
@@ -191,4 +195,16 @@ do { \
|
||||
current->mm->context.noexec == 0; \
|
||||
})
|
||||
|
||||
#define ARCH_DLINFO \
|
||||
do { \
|
||||
if (vdso_enabled) \
|
||||
NEW_AUX_ENT(AT_SYSINFO_EHDR, \
|
||||
(unsigned long)current->mm->context.vdso_base); \
|
||||
} while (0)
|
||||
|
||||
struct linux_binprm;
|
||||
|
||||
#define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
|
||||
int arch_setup_additional_pages(struct linux_binprm *, int);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -248,8 +248,8 @@ struct dcw {
|
||||
#define TCCB_MAX_SIZE (sizeof(struct tccb_tcah) + \
|
||||
TCCB_MAX_DCW * sizeof(struct dcw) + \
|
||||
sizeof(struct tccb_tcat))
|
||||
#define TCCB_SAC_DEFAULT 0xf901
|
||||
#define TCCB_SAC_INTRG 0xf902
|
||||
#define TCCB_SAC_DEFAULT 0x1ffe
|
||||
#define TCCB_SAC_INTRG 0x1fff
|
||||
|
||||
/**
|
||||
* struct tccb_tcah - Transport-Command-Area Header (TCAH)
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#ifndef _ASM_S390_FTRACE_H
|
||||
#define _ASM_S390_FTRACE_H
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
extern void _mcount(void);
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_S390_FTRACE_H */
|
||||
@@ -17,6 +17,7 @@
|
||||
#define CHSC_SCH_ISC 7 /* CHSC subchannels */
|
||||
/* Adapter interrupts. */
|
||||
#define QDIO_AIRQ_ISC IO_SCH_ISC /* I/O subchannel in qdio mode */
|
||||
#define AP_ISC 6 /* adjunct processor (crypto) devices */
|
||||
|
||||
/* Functions for registration of I/O interruption subclasses */
|
||||
void isc_register(unsigned int isc);
|
||||
|
||||
@@ -6,6 +6,7 @@ typedef struct {
|
||||
struct list_head pgtable_list;
|
||||
unsigned long asce_bits;
|
||||
unsigned long asce_limit;
|
||||
unsigned long vdso_base;
|
||||
int noexec;
|
||||
int has_pgste; /* The mmu context has extended page tables */
|
||||
int alloc_pgste; /* cloned contexts will have extended page tables */
|
||||
|
||||
@@ -152,4 +152,6 @@ void arch_alloc_page(struct page *page, int order);
|
||||
#include <asm-generic/memory_model.h>
|
||||
#include <asm-generic/page.h>
|
||||
|
||||
#define __HAVE_ARCH_GATE_AREA 1
|
||||
|
||||
#endif /* _S390_PAGE_H */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user