diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-01-13 15:00:22 +0000 | 
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-01-13 15:00:22 +0000 | 
| commit | 4de3a8e101150feaefa1139611a50ff37467f33e (patch) | |
| tree | daada742542518b02d7db7c5d32e715eaa5f166d /arch/s390/include | |
| parent | 294064f58953f9964e5945424b09c51800330a83 (diff) | |
| parent | 099469502f62fbe0d7e4f0b83a2f22538367f734 (diff) | |
| download | olio-linux-3.10-4de3a8e101150feaefa1139611a50ff37467f33e.tar.xz olio-linux-3.10-4de3a8e101150feaefa1139611a50ff37467f33e.zip  | |
Merge branch 'master' into fixes
Diffstat (limited to 'arch/s390/include')
| -rw-r--r-- | arch/s390/include/asm/debug.h | 4 | ||||
| -rw-r--r-- | arch/s390/include/asm/kdebug.h | 2 | ||||
| -rw-r--r-- | arch/s390/include/asm/lowcore.h | 142 | ||||
| -rw-r--r-- | arch/s390/include/asm/percpu.h | 44 | ||||
| -rw-r--r-- | arch/s390/include/asm/pgtable.h | 23 | ||||
| -rw-r--r-- | arch/s390/include/asm/processor.h | 4 | ||||
| -rw-r--r-- | arch/s390/include/asm/ptrace.h | 3 | ||||
| -rw-r--r-- | arch/s390/include/asm/qdio.h | 5 | ||||
| -rw-r--r-- | arch/s390/include/asm/sigp.h | 1 | ||||
| -rw-r--r-- | arch/s390/include/asm/smp.h | 1 | ||||
| -rw-r--r-- | arch/s390/include/asm/sparsemem.h | 4 | ||||
| -rw-r--r-- | arch/s390/include/asm/syscall.h | 2 | ||||
| -rw-r--r-- | arch/s390/include/asm/system.h | 2 | ||||
| -rw-r--r-- | arch/s390/include/asm/thread_info.h | 2 | ||||
| -rw-r--r-- | arch/s390/include/asm/topology.h | 40 | ||||
| -rw-r--r-- | arch/s390/include/asm/types.h | 2 | ||||
| -rw-r--r-- | arch/s390/include/asm/unistd.h | 1 | 
17 files changed, 149 insertions, 133 deletions
diff --git a/arch/s390/include/asm/debug.h b/arch/s390/include/asm/debug.h index 18124b75a7a..9d88db1f55d 100644 --- a/arch/s390/include/asm/debug.h +++ b/arch/s390/include/asm/debug.h @@ -73,7 +73,7 @@ typedef struct debug_info {  	struct dentry* debugfs_entries[DEBUG_MAX_VIEWS];  	struct debug_view* views[DEBUG_MAX_VIEWS];	  	char name[DEBUG_MAX_NAME_LEN]; -	mode_t mode; +	umode_t mode;  } debug_info_t;  typedef int (debug_header_proc_t) (debug_info_t* id, @@ -124,7 +124,7 @@ debug_info_t *debug_register(const char *name, int pages, int nr_areas,                               int buf_size);  debug_info_t *debug_register_mode(const char *name, int pages, int nr_areas, -				  int buf_size, mode_t mode, uid_t uid, +				  int buf_size, umode_t mode, uid_t uid,  				  gid_t gid);  void debug_unregister(debug_info_t* id); diff --git a/arch/s390/include/asm/kdebug.h b/arch/s390/include/asm/kdebug.h index 40db27cd6e6..5c1abd47612 100644 --- a/arch/s390/include/asm/kdebug.h +++ b/arch/s390/include/asm/kdebug.h @@ -22,6 +22,6 @@ enum die_val {  	DIE_NMI_IPI,  }; -extern void die(const char *, struct pt_regs *, long); +extern void die(struct pt_regs *, const char *);  #endif diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h index 9e13c7d56cc..707f2306725 100644 --- a/arch/s390/include/asm/lowcore.h +++ b/arch/s390/include/asm/lowcore.h @@ -97,47 +97,52 @@ struct _lowcore {  	__u32	gpregs_save_area[16];		/* 0x0180 */  	__u32	cregs_save_area[16];		/* 0x01c0 */ +	/* Save areas. */ +	__u32	save_area_sync[8];		/* 0x0200 */ +	__u32	save_area_async[8];		/* 0x0220 */ +	__u32	save_area_restart[1];		/* 0x0240 */ +	__u8	pad_0x0244[0x0248-0x0244];	/* 0x0244 */ +  	/* Return psws. */ -	__u32	save_area[16];			/* 0x0200 */ -	psw_t	return_psw;			/* 0x0240 */ -	psw_t	return_mcck_psw;		/* 0x0248 */ +	psw_t	return_psw;			/* 0x0248 */ +	psw_t	return_mcck_psw;		/* 0x0250 */  	/* CPU time accounting values */ -	__u64	sync_enter_timer;		/* 0x0250 */ -	__u64	async_enter_timer;		/* 0x0258 */ -	__u64	mcck_enter_timer;		/* 0x0260 */ -	__u64	exit_timer;			/* 0x0268 */ -	__u64	user_timer;			/* 0x0270 */ -	__u64	system_timer;			/* 0x0278 */ -	__u64	steal_timer;			/* 0x0280 */ -	__u64	last_update_timer;		/* 0x0288 */ -	__u64	last_update_clock;		/* 0x0290 */ +	__u64	sync_enter_timer;		/* 0x0258 */ +	__u64	async_enter_timer;		/* 0x0260 */ +	__u64	mcck_enter_timer;		/* 0x0268 */ +	__u64	exit_timer;			/* 0x0270 */ +	__u64	user_timer;			/* 0x0278 */ +	__u64	system_timer;			/* 0x0280 */ +	__u64	steal_timer;			/* 0x0288 */ +	__u64	last_update_timer;		/* 0x0290 */ +	__u64	last_update_clock;		/* 0x0298 */  	/* Current process. */ -	__u32	current_task;			/* 0x0298 */ -	__u32	thread_info;			/* 0x029c */ -	__u32	kernel_stack;			/* 0x02a0 */ +	__u32	current_task;			/* 0x02a0 */ +	__u32	thread_info;			/* 0x02a4 */ +	__u32	kernel_stack;			/* 0x02a8 */  	/* Interrupt and panic stack. */ -	__u32	async_stack;			/* 0x02a4 */ -	__u32	panic_stack;			/* 0x02a8 */ +	__u32	async_stack;			/* 0x02ac */ +	__u32	panic_stack;			/* 0x02b0 */  	/* Address space pointer. */ -	__u32	kernel_asce;			/* 0x02ac */ -	__u32	user_asce;			/* 0x02b0 */ -	__u32	current_pid;			/* 0x02b4 */ +	__u32	kernel_asce;			/* 0x02b4 */ +	__u32	user_asce;			/* 0x02b8 */ +	__u32	current_pid;			/* 0x02bc */  	/* SMP info area */ -	__u32	cpu_nr;				/* 0x02b8 */ -	__u32	softirq_pending;		/* 0x02bc */ -	__u32	percpu_offset;			/* 0x02c0 */ -	__u32	ext_call_fast;			/* 0x02c4 */ -	__u64	int_clock;			/* 0x02c8 */ -	__u64	mcck_clock;			/* 0x02d0 */ -	__u64	clock_comparator;		/* 0x02d8 */ -	__u32	machine_flags;			/* 0x02e0 */ -	__u32	ftrace_func;			/* 0x02e4 */ -	__u8	pad_0x02e8[0x0300-0x02e8];	/* 0x02e8 */ +	__u32	cpu_nr;				/* 0x02c0 */ +	__u32	softirq_pending;		/* 0x02c4 */ +	__u32	percpu_offset;			/* 0x02c8 */ +	__u32	ext_call_fast;			/* 0x02cc */ +	__u64	int_clock;			/* 0x02d0 */ +	__u64	mcck_clock;			/* 0x02d8 */ +	__u64	clock_comparator;		/* 0x02e0 */ +	__u32	machine_flags;			/* 0x02e8 */ +	__u32	ftrace_func;			/* 0x02ec */ +	__u8	pad_0x02f8[0x0300-0x02f0];	/* 0x02f0 */  	/* Interrupt response block */  	__u8	irb[64];			/* 0x0300 */ @@ -229,57 +234,62 @@ struct _lowcore {  	psw_t	mcck_new_psw;			/* 0x01e0 */  	psw_t	io_new_psw;			/* 0x01f0 */ -	/* Entry/exit save area & return psws. */ -	__u64	save_area[16];			/* 0x0200 */ -	psw_t	return_psw;			/* 0x0280 */ -	psw_t	return_mcck_psw;		/* 0x0290 */ +	/* Save areas. */ +	__u64	save_area_sync[8];		/* 0x0200 */ +	__u64	save_area_async[8];		/* 0x0240 */ +	__u64	save_area_restart[1];		/* 0x0280 */ +	__u8	pad_0x0288[0x0290-0x0288];	/* 0x0288 */ + +	/* Return psws. */ +	psw_t	return_psw;			/* 0x0290 */ +	psw_t	return_mcck_psw;		/* 0x02a0 */  	/* CPU accounting and timing values. */ -	__u64	sync_enter_timer;		/* 0x02a0 */ -	__u64	async_enter_timer;		/* 0x02a8 */ -	__u64	mcck_enter_timer;		/* 0x02b0 */ -	__u64	exit_timer;			/* 0x02b8 */ -	__u64	user_timer;			/* 0x02c0 */ -	__u64	system_timer;			/* 0x02c8 */ -	__u64	steal_timer;			/* 0x02d0 */ -	__u64	last_update_timer;		/* 0x02d8 */ -	__u64	last_update_clock;		/* 0x02e0 */ +	__u64	sync_enter_timer;		/* 0x02b0 */ +	__u64	async_enter_timer;		/* 0x02b8 */ +	__u64	mcck_enter_timer;		/* 0x02c0 */ +	__u64	exit_timer;			/* 0x02c8 */ +	__u64	user_timer;			/* 0x02d0 */ +	__u64	system_timer;			/* 0x02d8 */ +	__u64	steal_timer;			/* 0x02e0 */ +	__u64	last_update_timer;		/* 0x02e8 */ +	__u64	last_update_clock;		/* 0x02f0 */  	/* Current process. */ -	__u64	current_task;			/* 0x02e8 */ -	__u64	thread_info;			/* 0x02f0 */ -	__u64	kernel_stack;			/* 0x02f8 */ +	__u64	current_task;			/* 0x02f8 */ +	__u64	thread_info;			/* 0x0300 */ +	__u64	kernel_stack;			/* 0x0308 */  	/* Interrupt and panic stack. */ -	__u64	async_stack;			/* 0x0300 */ -	__u64	panic_stack;			/* 0x0308 */ +	__u64	async_stack;			/* 0x0310 */ +	__u64	panic_stack;			/* 0x0318 */  	/* Address space pointer. */ -	__u64	kernel_asce;			/* 0x0310 */ -	__u64	user_asce;			/* 0x0318 */ -	__u64	current_pid;			/* 0x0320 */ +	__u64	kernel_asce;			/* 0x0320 */ +	__u64	user_asce;			/* 0x0328 */ +	__u64	current_pid;			/* 0x0330 */  	/* SMP info area */ -	__u32	cpu_nr;				/* 0x0328 */ -	__u32	softirq_pending;		/* 0x032c */ -	__u64	percpu_offset;			/* 0x0330 */ -	__u64	ext_call_fast;			/* 0x0338 */ -	__u64	int_clock;			/* 0x0340 */ -	__u64	mcck_clock;			/* 0x0348 */ -	__u64	clock_comparator;		/* 0x0350 */ -	__u64	vdso_per_cpu_data;		/* 0x0358 */ -	__u64	machine_flags;			/* 0x0360 */ -	__u64	ftrace_func;			/* 0x0368 */ -	__u64	gmap;				/* 0x0370 */ -	__u64	cmf_hpp;			/* 0x0378 */ +	__u32	cpu_nr;				/* 0x0338 */ +	__u32	softirq_pending;		/* 0x033c */ +	__u64	percpu_offset;			/* 0x0340 */ +	__u64	ext_call_fast;			/* 0x0348 */ +	__u64	int_clock;			/* 0x0350 */ +	__u64	mcck_clock;			/* 0x0358 */ +	__u64	clock_comparator;		/* 0x0360 */ +	__u64	vdso_per_cpu_data;		/* 0x0368 */ +	__u64	machine_flags;			/* 0x0370 */ +	__u64	ftrace_func;			/* 0x0378 */ +	__u64	gmap;				/* 0x0380 */ +	__u8	pad_0x0388[0x0400-0x0388];	/* 0x0388 */  	/* Interrupt response block. */ -	__u8	irb[64];			/* 0x0380 */ +	__u8	irb[64];			/* 0x0400 */  	/* Per cpu primary space access list */ -	__u32	paste[16];			/* 0x03c0 */ +	__u32	paste[16];			/* 0x0440 */ -	__u8	pad_0x0400[0x0e00-0x0400];	/* 0x0400 */ +	__u8	pad_0x0480[0x0e00-0x0480];	/* 0x0480 */  	/*  	 * 0xe00 contains the address of the IPL Parameter Information diff --git a/arch/s390/include/asm/percpu.h b/arch/s390/include/asm/percpu.h index 5325c89a584..0fbd1899c7b 100644 --- a/arch/s390/include/asm/percpu.h +++ b/arch/s390/include/asm/percpu.h @@ -19,7 +19,7 @@  #define ARCH_NEEDS_WEAK_PER_CPU  #endif -#define arch_irqsafe_cpu_to_op(pcp, val, op)				\ +#define arch_this_cpu_to_op(pcp, val, op)				\  do {									\  	typedef typeof(pcp) pcp_op_T__;					\  	pcp_op_T__ old__, new__, prev__;				\ @@ -41,27 +41,27 @@ do {									\  	preempt_enable();						\  } while (0) -#define irqsafe_cpu_add_1(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, +) -#define irqsafe_cpu_add_2(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, +) -#define irqsafe_cpu_add_4(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, +) -#define irqsafe_cpu_add_8(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, +) +#define this_cpu_add_1(pcp, val) arch_this_cpu_to_op(pcp, val, +) +#define this_cpu_add_2(pcp, val) arch_this_cpu_to_op(pcp, val, +) +#define this_cpu_add_4(pcp, val) arch_this_cpu_to_op(pcp, val, +) +#define this_cpu_add_8(pcp, val) arch_this_cpu_to_op(pcp, val, +) -#define irqsafe_cpu_and_1(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, &) -#define irqsafe_cpu_and_2(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, &) -#define irqsafe_cpu_and_4(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, &) -#define irqsafe_cpu_and_8(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, &) +#define this_cpu_and_1(pcp, val) arch_this_cpu_to_op(pcp, val, &) +#define this_cpu_and_2(pcp, val) arch_this_cpu_to_op(pcp, val, &) +#define this_cpu_and_4(pcp, val) arch_this_cpu_to_op(pcp, val, &) +#define this_cpu_and_8(pcp, val) arch_this_cpu_to_op(pcp, val, &) -#define irqsafe_cpu_or_1(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, |) -#define irqsafe_cpu_or_2(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, |) -#define irqsafe_cpu_or_4(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, |) -#define irqsafe_cpu_or_8(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, |) +#define this_cpu_or_1(pcp, val) arch_this_cpu_to_op(pcp, val, |) +#define this_cpu_or_2(pcp, val) arch_this_cpu_to_op(pcp, val, |) +#define this_cpu_or_4(pcp, val) arch_this_cpu_to_op(pcp, val, |) +#define this_cpu_or_8(pcp, val) arch_this_cpu_to_op(pcp, val, |) -#define irqsafe_cpu_xor_1(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, ^) -#define irqsafe_cpu_xor_2(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, ^) -#define irqsafe_cpu_xor_4(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, ^) -#define irqsafe_cpu_xor_8(pcp, val) arch_irqsafe_cpu_to_op(pcp, val, ^) +#define this_cpu_xor_1(pcp, val) arch_this_cpu_to_op(pcp, val, ^) +#define this_cpu_xor_2(pcp, val) arch_this_cpu_to_op(pcp, val, ^) +#define this_cpu_xor_4(pcp, val) arch_this_cpu_to_op(pcp, val, ^) +#define this_cpu_xor_8(pcp, val) arch_this_cpu_to_op(pcp, val, ^) -#define arch_irqsafe_cpu_cmpxchg(pcp, oval, nval)			\ +#define arch_this_cpu_cmpxchg(pcp, oval, nval)			\  ({									\  	typedef typeof(pcp) pcp_op_T__;					\  	pcp_op_T__ ret__;						\ @@ -79,10 +79,10 @@ do {									\  	ret__;								\  }) -#define irqsafe_cpu_cmpxchg_1(pcp, oval, nval) arch_irqsafe_cpu_cmpxchg(pcp, oval, nval) -#define irqsafe_cpu_cmpxchg_2(pcp, oval, nval) arch_irqsafe_cpu_cmpxchg(pcp, oval, nval) -#define irqsafe_cpu_cmpxchg_4(pcp, oval, nval) arch_irqsafe_cpu_cmpxchg(pcp, oval, nval) -#define irqsafe_cpu_cmpxchg_8(pcp, oval, nval) arch_irqsafe_cpu_cmpxchg(pcp, oval, nval) +#define this_cpu_cmpxchg_1(pcp, oval, nval) arch_this_cpu_cmpxchg(pcp, oval, nval) +#define this_cpu_cmpxchg_2(pcp, oval, nval) arch_this_cpu_cmpxchg(pcp, oval, nval) +#define this_cpu_cmpxchg_4(pcp, oval, nval) arch_this_cpu_cmpxchg(pcp, oval, nval) +#define this_cpu_cmpxchg_8(pcp, oval, nval) arch_this_cpu_cmpxchg(pcp, oval, nval)  #include <asm-generic/percpu.h> diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index 4f289ff0b7f..011358c1b18 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h @@ -128,28 +128,11 @@ static inline int is_zero_pfn(unsigned long pfn)   * effect, this also makes sure that 64 bit module code cannot be used   * as system call address.   */ -  extern unsigned long VMALLOC_START; +extern unsigned long VMALLOC_END; +extern struct page *vmemmap; -#ifndef __s390x__ -#define VMALLOC_SIZE	(96UL << 20) -#define VMALLOC_END	0x7e000000UL -#define VMEM_MAP_END	0x80000000UL -#else /* __s390x__ */ -#define VMALLOC_SIZE	(128UL << 30) -#define VMALLOC_END	0x3e000000000UL -#define VMEM_MAP_END	0x40000000000UL -#endif /* __s390x__ */ - -/* - * VMEM_MAX_PHYS is the highest physical address that can be added to the 1:1 - * mapping. This needs to be calculated at compile time since the size of the - * VMEM_MAP is static but the size of struct page can change. - */ -#define VMEM_MAX_PAGES	((VMEM_MAP_END - VMALLOC_END) / sizeof(struct page)) -#define VMEM_MAX_PFN	min(VMALLOC_START >> PAGE_SHIFT, VMEM_MAX_PAGES) -#define VMEM_MAX_PHYS	((VMEM_MAX_PFN << PAGE_SHIFT) & ~((16 << 20) - 1)) -#define vmemmap		((struct page *) VMALLOC_END) +#define VMEM_MAX_PHYS ((unsigned long) vmemmap)  /*   * A 31 bit pagetable entry of S390 has following format: diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h index 5f33d37d032..d25843a6a91 100644 --- a/arch/s390/include/asm/processor.h +++ b/arch/s390/include/asm/processor.h @@ -80,8 +80,6 @@ struct thread_struct {  	unsigned int  acrs[NUM_ACRS];          unsigned long ksp;              /* kernel stack pointer             */  	mm_segment_t mm_segment; -        unsigned long prot_addr;        /* address of protection-excep.     */ -        unsigned int trap_no;  	unsigned long gmap_addr;	/* address of last gmap fault. */  	struct per_regs per_user;	/* User specified PER registers */  	struct per_event per_event;	/* Cause of the last PER trap */ @@ -238,7 +236,7 @@ static inline unsigned long __rewind_psw(psw_t psw, unsigned long ilc)  /*   * Function to drop a processor into disabled wait state   */ -static inline void ATTRIB_NORET disabled_wait(unsigned long code) +static inline void __noreturn disabled_wait(unsigned long code)  {          unsigned long ctl_buf;          psw_t dw_psw; diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h index a65846340d5..56da355678f 100644 --- a/arch/s390/include/asm/ptrace.h +++ b/arch/s390/include/asm/ptrace.h @@ -324,7 +324,8 @@ struct pt_regs  	psw_t psw;  	unsigned long gprs[NUM_GPRS];  	unsigned long orig_gpr2; -	unsigned int svc_code; +	unsigned int int_code; +	unsigned long int_parm_long;  };  /* diff --git a/arch/s390/include/asm/qdio.h b/arch/s390/include/asm/qdio.h index e63d13dd3bf..d75c8e78f7e 100644 --- a/arch/s390/include/asm/qdio.h +++ b/arch/s390/include/asm/qdio.h @@ -352,7 +352,7 @@ typedef void qdio_handler_t(struct ccw_device *, unsigned int, int,   * @no_output_qs: number of output queues   * @input_handler: handler to be called for input queues   * @output_handler: handler to be called for output queues - * @queue_start_poll: polling handlers (one per input queue or NULL) + * @queue_start_poll_array: polling handlers (one per input queue or NULL)   * @int_parm: interruption parameter   * @input_sbal_addr_array:  address of no_input_qs * 128 pointers   * @output_sbal_addr_array: address of no_output_qs * 128 pointers @@ -372,7 +372,8 @@ struct qdio_initialize {  	unsigned int no_output_qs;  	qdio_handler_t *input_handler;  	qdio_handler_t *output_handler; -	void (**queue_start_poll) (struct ccw_device *, int, unsigned long); +	void (**queue_start_poll_array) (struct ccw_device *, int, +					  unsigned long);  	int scan_threshold;  	unsigned long int_parm;  	void **input_sbal_addr_array; diff --git a/arch/s390/include/asm/sigp.h b/arch/s390/include/asm/sigp.h index e3bffd4e2d6..7040b8567cd 100644 --- a/arch/s390/include/asm/sigp.h +++ b/arch/s390/include/asm/sigp.h @@ -56,6 +56,7 @@ enum {  	ec_schedule = 0,  	ec_call_function,  	ec_call_function_single, +	ec_stop_cpu,  };  /* diff --git a/arch/s390/include/asm/smp.h b/arch/s390/include/asm/smp.h index ab47a69fdf0..c32e9123b40 100644 --- a/arch/s390/include/asm/smp.h +++ b/arch/s390/include/asm/smp.h @@ -23,7 +23,6 @@ extern void __cpu_die (unsigned int cpu);  extern int __cpu_up (unsigned int cpu);  extern struct mutex smp_cpu_state_mutex; -extern int smp_cpu_polarization[];  extern void arch_send_call_function_single_ipi(int cpu);  extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); diff --git a/arch/s390/include/asm/sparsemem.h b/arch/s390/include/asm/sparsemem.h index 545d219e6a2..0fb34027d3f 100644 --- a/arch/s390/include/asm/sparsemem.h +++ b/arch/s390/include/asm/sparsemem.h @@ -4,8 +4,8 @@  #ifdef CONFIG_64BIT  #define SECTION_SIZE_BITS	28 -#define MAX_PHYSADDR_BITS	42 -#define MAX_PHYSMEM_BITS	42 +#define MAX_PHYSADDR_BITS	46 +#define MAX_PHYSMEM_BITS	46  #else diff --git a/arch/s390/include/asm/syscall.h b/arch/s390/include/asm/syscall.h index b239ff53b18..fb214dd9b7e 100644 --- a/arch/s390/include/asm/syscall.h +++ b/arch/s390/include/asm/syscall.h @@ -27,7 +27,7 @@ static inline long syscall_get_nr(struct task_struct *task,  				  struct pt_regs *regs)  {  	return test_tsk_thread_flag(task, TIF_SYSCALL) ? -		(regs->svc_code & 0xffff) : -1; +		(regs->int_code & 0xffff) : -1;  }  static inline void syscall_rollback(struct task_struct *task, diff --git a/arch/s390/include/asm/system.h b/arch/s390/include/asm/system.h index ef573c1d71a..d73cc6b6000 100644 --- a/arch/s390/include/asm/system.h +++ b/arch/s390/include/asm/system.h @@ -20,8 +20,6 @@  struct task_struct; -extern int sysctl_userprocess_debug; -  extern struct task_struct *__switch_to(void *, void *);  extern void update_per_regs(struct task_struct *task); diff --git a/arch/s390/include/asm/thread_info.h b/arch/s390/include/asm/thread_info.h index a23183423b1..a73038155e0 100644 --- a/arch/s390/include/asm/thread_info.h +++ b/arch/s390/include/asm/thread_info.h @@ -102,7 +102,6 @@ static inline struct thread_info *current_thread_info(void)  #define TIF_MEMDIE		18	/* is terminating due to OOM killer */  #define TIF_RESTORE_SIGMASK	19	/* restore signal mask in do_signal() */  #define TIF_SINGLE_STEP		20	/* This task is single stepped */ -#define TIF_FREEZE		21	/* thread is freezing for suspend */  #define _TIF_SYSCALL		(1<<TIF_SYSCALL)  #define _TIF_NOTIFY_RESUME	(1<<TIF_NOTIFY_RESUME) @@ -119,7 +118,6 @@ static inline struct thread_info *current_thread_info(void)  #define _TIF_POLLING_NRFLAG	(1<<TIF_POLLING_NRFLAG)  #define _TIF_31BIT		(1<<TIF_31BIT)  #define _TIF_SINGLE_STEP	(1<<TIF_SINGLE_STEP) -#define _TIF_FREEZE		(1<<TIF_FREEZE)  #ifdef CONFIG_64BIT  #define is_32bit_task()		(test_thread_flag(TIF_31BIT)) diff --git a/arch/s390/include/asm/topology.h b/arch/s390/include/asm/topology.h index 005d77d8ae2..0837de80c35 100644 --- a/arch/s390/include/asm/topology.h +++ b/arch/s390/include/asm/topology.h @@ -4,6 +4,10 @@  #include <linux/cpumask.h>  #include <asm/sysinfo.h> +struct cpu; + +#ifdef CONFIG_SCHED_BOOK +  extern unsigned char cpu_core_id[NR_CPUS];  extern cpumask_t cpu_core_map[NR_CPUS]; @@ -16,8 +20,6 @@ static inline const struct cpumask *cpu_coregroup_mask(int cpu)  #define topology_core_cpumask(cpu)	(&cpu_core_map[cpu])  #define mc_capable()			(1) -#ifdef CONFIG_SCHED_BOOK -  extern unsigned char cpu_book_id[NR_CPUS];  extern cpumask_t cpu_book_map[NR_CPUS]; @@ -29,19 +31,45 @@ static inline const struct cpumask *cpu_book_mask(int cpu)  #define topology_book_id(cpu)		(cpu_book_id[cpu])  #define topology_book_cpumask(cpu)	(&cpu_book_map[cpu]) -#endif /* CONFIG_SCHED_BOOK */ - +int topology_cpu_init(struct cpu *);  int topology_set_cpu_management(int fc);  void topology_schedule_update(void);  void store_topology(struct sysinfo_15_1_x *info); +void topology_expect_change(void); + +#else /* CONFIG_SCHED_BOOK */ + +static inline void topology_schedule_update(void) { } +static inline int topology_cpu_init(struct cpu *cpu) { return 0; } +static inline void topology_expect_change(void) { } -#define POLARIZATION_UNKNWN	(-1) +#endif /* CONFIG_SCHED_BOOK */ + +#define POLARIZATION_UNKNOWN	(-1)  #define POLARIZATION_HRZ	(0)  #define POLARIZATION_VL		(1)  #define POLARIZATION_VM		(2)  #define POLARIZATION_VH		(3) -#ifdef CONFIG_SMP +extern int cpu_polarization[]; + +static inline void cpu_set_polarization(int cpu, int val) +{ +#ifdef CONFIG_SCHED_BOOK +	cpu_polarization[cpu] = val; +#endif +} + +static inline int cpu_read_polarization(int cpu) +{ +#ifdef CONFIG_SCHED_BOOK +	return cpu_polarization[cpu]; +#else +	return POLARIZATION_HRZ; +#endif +} + +#ifdef CONFIG_SCHED_BOOK  void s390_init_cpu_topology(void);  #else  static inline void s390_init_cpu_topology(void) diff --git a/arch/s390/include/asm/types.h b/arch/s390/include/asm/types.h index eeb52ccf499..05ebbcdbbf6 100644 --- a/arch/s390/include/asm/types.h +++ b/arch/s390/include/asm/types.h @@ -13,8 +13,6 @@  #ifndef __ASSEMBLY__ -typedef unsigned short umode_t; -  /* A address type so that arithmetic can be done on it & it can be upgraded to     64 bit when necessary   */ diff --git a/arch/s390/include/asm/unistd.h b/arch/s390/include/asm/unistd.h index 58de4c91c33..8a8008fe7b8 100644 --- a/arch/s390/include/asm/unistd.h +++ b/arch/s390/include/asm/unistd.h @@ -398,6 +398,7 @@  #define __ARCH_WANT_SYS_SIGNAL  #define __ARCH_WANT_SYS_UTIME  #define __ARCH_WANT_SYS_SOCKETCALL +#define __ARCH_WANT_SYS_IPC  #define __ARCH_WANT_SYS_FADVISE64  #define __ARCH_WANT_SYS_GETPGRP  #define __ARCH_WANT_SYS_LLSEEK  |