diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-31 13:51:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-31 13:51:10 -0400 |
commit | 8ee78c6fb982b3a7343faf561e7937d4cfa955ff (patch) | |
tree | 93d9327018e648174fb83b4144eed89de72693dd /arch/s390/include | |
parent | aac422afeffa9093544799c3257a96b55ba42044 (diff) | |
parent | 491af9903b858ee7c36735dc31708fe4074ce56f (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 patches from Heiko Carstens:
"A couple of s390 patches for the 3.5 merge window. Just a collection
of bug fixes and cleanups."
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
s390/uaccess: fix access_ok compile warnings
s390/cmpxchg: select HAVE_CMPXCHG_LOCAL option
s390/cmpxchg: fix sign extension bugs
s390/cmpxchg: fix 1 and 2 byte memory accesses
s390/cmpxchg: fix compile warnings specific to s390
s390/cmpxchg: add missing memory barrier to cmpxchg64
s390/cpu: remove cpu "capabilities" sysfs attribute
s390/kernel: Fix smp_call_ipl_cpu() for offline CPUs
s390/kernel: Introduce memcpy_absolute() function
s390/headers: replace __s390x__ with CONFIG_64BIT where possible
s390/headers: remove #ifdef __KERNEL__ from not exported headers
s390/irq: split irq stats for cpu-measurement alert facilities
s390/kexec: Move early_pgm_check_handler() to text section
s390/kdump: Use real mode for PSW restart and kexec
s390/kdump: Account /sys/kernel/kexec_crash_size changes in OS info
s390/kernel: Remove OS info init function call and diag 308 for kdump
Diffstat (limited to 'arch/s390/include')
31 files changed, 170 insertions, 199 deletions
diff --git a/arch/s390/include/asm/bitops.h b/arch/s390/include/asm/bitops.h index e5beb490959b..a6ff5a83e227 100644 --- a/arch/s390/include/asm/bitops.h +++ b/arch/s390/include/asm/bitops.h | |||
@@ -13,8 +13,6 @@ | |||
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #ifdef __KERNEL__ | ||
17 | |||
18 | #ifndef _LINUX_BITOPS_H | 16 | #ifndef _LINUX_BITOPS_H |
19 | #error only <linux/bitops.h> can be included directly | 17 | #error only <linux/bitops.h> can be included directly |
20 | #endif | 18 | #endif |
@@ -63,7 +61,7 @@ extern const char _ni_bitmap[]; | |||
63 | extern const char _zb_findmap[]; | 61 | extern const char _zb_findmap[]; |
64 | extern const char _sb_findmap[]; | 62 | extern const char _sb_findmap[]; |
65 | 63 | ||
66 | #ifndef __s390x__ | 64 | #ifndef CONFIG_64BIT |
67 | 65 | ||
68 | #define __BITOPS_ALIGN 3 | 66 | #define __BITOPS_ALIGN 3 |
69 | #define __BITOPS_WORDSIZE 32 | 67 | #define __BITOPS_WORDSIZE 32 |
@@ -83,7 +81,7 @@ extern const char _sb_findmap[]; | |||
83 | : "d" (__val), "Q" (*(unsigned long *) __addr) \ | 81 | : "d" (__val), "Q" (*(unsigned long *) __addr) \ |
84 | : "cc"); | 82 | : "cc"); |
85 | 83 | ||
86 | #else /* __s390x__ */ | 84 | #else /* CONFIG_64BIT */ |
87 | 85 | ||
88 | #define __BITOPS_ALIGN 7 | 86 | #define __BITOPS_ALIGN 7 |
89 | #define __BITOPS_WORDSIZE 64 | 87 | #define __BITOPS_WORDSIZE 64 |
@@ -103,7 +101,7 @@ extern const char _sb_findmap[]; | |||
103 | : "d" (__val), "Q" (*(unsigned long *) __addr) \ | 101 | : "d" (__val), "Q" (*(unsigned long *) __addr) \ |
104 | : "cc"); | 102 | : "cc"); |
105 | 103 | ||
106 | #endif /* __s390x__ */ | 104 | #endif /* CONFIG_64BIT */ |
107 | 105 | ||
108 | #define __BITOPS_WORDS(bits) (((bits)+__BITOPS_WORDSIZE-1)/__BITOPS_WORDSIZE) | 106 | #define __BITOPS_WORDS(bits) (((bits)+__BITOPS_WORDSIZE-1)/__BITOPS_WORDSIZE) |
109 | #define __BITOPS_BARRIER() asm volatile("" : : : "memory") | 107 | #define __BITOPS_BARRIER() asm volatile("" : : : "memory") |
@@ -412,7 +410,7 @@ static inline unsigned long __ffz_word_loop(const unsigned long *addr, | |||
412 | unsigned long bytes = 0; | 410 | unsigned long bytes = 0; |
413 | 411 | ||
414 | asm volatile( | 412 | asm volatile( |
415 | #ifndef __s390x__ | 413 | #ifndef CONFIG_64BIT |
416 | " ahi %1,-1\n" | 414 | " ahi %1,-1\n" |
417 | " sra %1,5\n" | 415 | " sra %1,5\n" |
418 | " jz 1f\n" | 416 | " jz 1f\n" |
@@ -449,7 +447,7 @@ static inline unsigned long __ffs_word_loop(const unsigned long *addr, | |||
449 | unsigned long bytes = 0; | 447 | unsigned long bytes = 0; |
450 | 448 | ||
451 | asm volatile( | 449 | asm volatile( |
452 | #ifndef __s390x__ | 450 | #ifndef CONFIG_64BIT |
453 | " ahi %1,-1\n" | 451 | " ahi %1,-1\n" |
454 | " sra %1,5\n" | 452 | " sra %1,5\n" |
455 | " jz 1f\n" | 453 | " jz 1f\n" |
@@ -481,7 +479,7 @@ static inline unsigned long __ffs_word_loop(const unsigned long *addr, | |||
481 | */ | 479 | */ |
482 | static inline unsigned long __ffz_word(unsigned long nr, unsigned long word) | 480 | static inline unsigned long __ffz_word(unsigned long nr, unsigned long word) |
483 | { | 481 | { |
484 | #ifdef __s390x__ | 482 | #ifdef CONFIG_64BIT |
485 | if ((word & 0xffffffff) == 0xffffffff) { | 483 | if ((word & 0xffffffff) == 0xffffffff) { |
486 | word >>= 32; | 484 | word >>= 32; |
487 | nr += 32; | 485 | nr += 32; |
@@ -505,7 +503,7 @@ static inline unsigned long __ffz_word(unsigned long nr, unsigned long word) | |||
505 | */ | 503 | */ |
506 | static inline unsigned long __ffs_word(unsigned long nr, unsigned long word) | 504 | static inline unsigned long __ffs_word(unsigned long nr, unsigned long word) |
507 | { | 505 | { |
508 | #ifdef __s390x__ | 506 | #ifdef CONFIG_64BIT |
509 | if ((word & 0xffffffff) == 0) { | 507 | if ((word & 0xffffffff) == 0) { |
510 | word >>= 32; | 508 | word >>= 32; |
511 | nr += 32; | 509 | nr += 32; |
@@ -546,7 +544,7 @@ static inline unsigned long __load_ulong_le(const unsigned long *p, | |||
546 | unsigned long word; | 544 | unsigned long word; |
547 | 545 | ||
548 | p = (unsigned long *)((unsigned long) p + offset); | 546 | p = (unsigned long *)((unsigned long) p + offset); |
549 | #ifndef __s390x__ | 547 | #ifndef CONFIG_64BIT |
550 | asm volatile( | 548 | asm volatile( |
551 | " ic %0,%O1(%R1)\n" | 549 | " ic %0,%O1(%R1)\n" |
552 | " icm %0,2,%O1+1(%R1)\n" | 550 | " icm %0,2,%O1+1(%R1)\n" |
@@ -834,7 +832,4 @@ static inline int find_next_bit_le(void *vaddr, unsigned long size, | |||
834 | 832 | ||
835 | #include <asm-generic/bitops/ext2-atomic-setbit.h> | 833 | #include <asm-generic/bitops/ext2-atomic-setbit.h> |
836 | 834 | ||
837 | |||
838 | #endif /* __KERNEL__ */ | ||
839 | |||
840 | #endif /* _S390_BITOPS_H */ | 835 | #endif /* _S390_BITOPS_H */ |
diff --git a/arch/s390/include/asm/cio.h b/arch/s390/include/asm/cio.h index fc50a3342da3..4c8d4d5b8bd2 100644 --- a/arch/s390/include/asm/cio.h +++ b/arch/s390/include/asm/cio.h | |||
@@ -10,8 +10,6 @@ | |||
10 | #include <linux/spinlock.h> | 10 | #include <linux/spinlock.h> |
11 | #include <asm/types.h> | 11 | #include <asm/types.h> |
12 | 12 | ||
13 | #ifdef __KERNEL__ | ||
14 | |||
15 | #define LPM_ANYPATH 0xff | 13 | #define LPM_ANYPATH 0xff |
16 | #define __MAX_CSSID 0 | 14 | #define __MAX_CSSID 0 |
17 | 15 | ||
@@ -291,5 +289,3 @@ int chsc_sstpc(void *page, unsigned int op, u16 ctrl); | |||
291 | int chsc_sstpi(void *page, void *result, size_t size); | 289 | int chsc_sstpi(void *page, void *result, size_t size); |
292 | 290 | ||
293 | #endif | 291 | #endif |
294 | |||
295 | #endif | ||
diff --git a/arch/s390/include/asm/cmpxchg.h b/arch/s390/include/asm/cmpxchg.h index 81d7908416cf..8d798e962b63 100644 --- a/arch/s390/include/asm/cmpxchg.h +++ b/arch/s390/include/asm/cmpxchg.h | |||
@@ -29,7 +29,7 @@ static inline unsigned long __xchg(unsigned long x, void *ptr, int size) | |||
29 | " cs %0,0,%4\n" | 29 | " cs %0,0,%4\n" |
30 | " jl 0b\n" | 30 | " jl 0b\n" |
31 | : "=&d" (old), "=Q" (*(int *) addr) | 31 | : "=&d" (old), "=Q" (*(int *) addr) |
32 | : "d" (x << shift), "d" (~(255 << shift)), | 32 | : "d" ((x & 0xff) << shift), "d" (~(0xff << shift)), |
33 | "Q" (*(int *) addr) : "memory", "cc", "0"); | 33 | "Q" (*(int *) addr) : "memory", "cc", "0"); |
34 | return old >> shift; | 34 | return old >> shift; |
35 | case 2: | 35 | case 2: |
@@ -44,7 +44,7 @@ static inline unsigned long __xchg(unsigned long x, void *ptr, int size) | |||
44 | " cs %0,0,%4\n" | 44 | " cs %0,0,%4\n" |
45 | " jl 0b\n" | 45 | " jl 0b\n" |
46 | : "=&d" (old), "=Q" (*(int *) addr) | 46 | : "=&d" (old), "=Q" (*(int *) addr) |
47 | : "d" (x << shift), "d" (~(65535 << shift)), | 47 | : "d" ((x & 0xffff) << shift), "d" (~(0xffff << shift)), |
48 | "Q" (*(int *) addr) : "memory", "cc", "0"); | 48 | "Q" (*(int *) addr) : "memory", "cc", "0"); |
49 | return old >> shift; | 49 | return old >> shift; |
50 | case 4: | 50 | case 4: |
@@ -113,9 +113,10 @@ static inline unsigned long __cmpxchg(void *ptr, unsigned long old, | |||
113 | " nr %1,%5\n" | 113 | " nr %1,%5\n" |
114 | " jnz 0b\n" | 114 | " jnz 0b\n" |
115 | "1:" | 115 | "1:" |
116 | : "=&d" (prev), "=&d" (tmp), "=Q" (*(int *) ptr) | 116 | : "=&d" (prev), "=&d" (tmp), "+Q" (*(int *) addr) |
117 | : "d" (old << shift), "d" (new << shift), | 117 | : "d" ((old & 0xff) << shift), |
118 | "d" (~(255 << shift)), "Q" (*(int *) ptr) | 118 | "d" ((new & 0xff) << shift), |
119 | "d" (~(0xff << shift)) | ||
119 | : "memory", "cc"); | 120 | : "memory", "cc"); |
120 | return prev >> shift; | 121 | return prev >> shift; |
121 | case 2: | 122 | case 2: |
@@ -134,9 +135,10 @@ static inline unsigned long __cmpxchg(void *ptr, unsigned long old, | |||
134 | " nr %1,%5\n" | 135 | " nr %1,%5\n" |
135 | " jnz 0b\n" | 136 | " jnz 0b\n" |
136 | "1:" | 137 | "1:" |
137 | : "=&d" (prev), "=&d" (tmp), "=Q" (*(int *) ptr) | 138 | : "=&d" (prev), "=&d" (tmp), "+Q" (*(int *) addr) |
138 | : "d" (old << shift), "d" (new << shift), | 139 | : "d" ((old & 0xffff) << shift), |
139 | "d" (~(65535 << shift)), "Q" (*(int *) ptr) | 140 | "d" ((new & 0xffff) << shift), |
141 | "d" (~(0xffff << shift)) | ||
140 | : "memory", "cc"); | 142 | : "memory", "cc"); |
141 | return prev >> shift; | 143 | return prev >> shift; |
142 | case 4: | 144 | case 4: |
@@ -160,9 +162,14 @@ static inline unsigned long __cmpxchg(void *ptr, unsigned long old, | |||
160 | return old; | 162 | return old; |
161 | } | 163 | } |
162 | 164 | ||
163 | #define cmpxchg(ptr, o, n) \ | 165 | #define cmpxchg(ptr, o, n) \ |
164 | ((__typeof__(*(ptr)))__cmpxchg((ptr), (unsigned long)(o), \ | 166 | ({ \ |
165 | (unsigned long)(n), sizeof(*(ptr)))) | 167 | __typeof__(*(ptr)) __ret; \ |
168 | __ret = (__typeof__(*(ptr))) \ | ||
169 | __cmpxchg((ptr), (unsigned long)(o), (unsigned long)(n), \ | ||
170 | sizeof(*(ptr))); \ | ||
171 | __ret; \ | ||
172 | }) | ||
166 | 173 | ||
167 | #ifdef CONFIG_64BIT | 174 | #ifdef CONFIG_64BIT |
168 | #define cmpxchg64(ptr, o, n) \ | 175 | #define cmpxchg64(ptr, o, n) \ |
@@ -181,13 +188,19 @@ static inline unsigned long long __cmpxchg64(void *ptr, | |||
181 | " cds %0,%2,%1" | 188 | " cds %0,%2,%1" |
182 | : "+&d" (rp_old), "=Q" (ptr) | 189 | : "+&d" (rp_old), "=Q" (ptr) |
183 | : "d" (rp_new), "Q" (ptr) | 190 | : "d" (rp_new), "Q" (ptr) |
184 | : "cc"); | 191 | : "memory", "cc"); |
185 | return rp_old.pair; | 192 | return rp_old.pair; |
186 | } | 193 | } |
187 | #define cmpxchg64(ptr, o, n) \ | 194 | |
188 | ((__typeof__(*(ptr)))__cmpxchg64((ptr), \ | 195 | #define cmpxchg64(ptr, o, n) \ |
189 | (unsigned long long)(o), \ | 196 | ({ \ |
190 | (unsigned long long)(n))) | 197 | __typeof__(*(ptr)) __ret; \ |
198 | __ret = (__typeof__(*(ptr))) \ | ||
199 | __cmpxchg64((ptr), \ | ||
200 | (unsigned long long)(o), \ | ||
201 | (unsigned long long)(n)); \ | ||
202 | __ret; \ | ||
203 | }) | ||
191 | #endif /* CONFIG_64BIT */ | 204 | #endif /* CONFIG_64BIT */ |
192 | 205 | ||
193 | #include <asm-generic/cmpxchg-local.h> | 206 | #include <asm-generic/cmpxchg-local.h> |
@@ -216,8 +229,13 @@ static inline unsigned long __cmpxchg_local(void *ptr, | |||
216 | * them available. | 229 | * them available. |
217 | */ | 230 | */ |
218 | #define cmpxchg_local(ptr, o, n) \ | 231 | #define cmpxchg_local(ptr, o, n) \ |
219 | ((__typeof__(*(ptr)))__cmpxchg_local((ptr), (unsigned long)(o), \ | 232 | ({ \ |
220 | (unsigned long)(n), sizeof(*(ptr)))) | 233 | __typeof__(*(ptr)) __ret; \ |
234 | __ret = (__typeof__(*(ptr))) \ | ||
235 | __cmpxchg_local((ptr), (unsigned long)(o), \ | ||
236 | (unsigned long)(n), sizeof(*(ptr))); \ | ||
237 | __ret; \ | ||
238 | }) | ||
221 | 239 | ||
222 | #define cmpxchg64_local(ptr, o, n) cmpxchg64((ptr), (o), (n)) | 240 | #define cmpxchg64_local(ptr, o, n) cmpxchg64((ptr), (o), (n)) |
223 | 241 | ||
diff --git a/arch/s390/include/asm/cputime.h b/arch/s390/include/asm/cputime.h index 24ef186a1c4f..718374de9c7f 100644 --- a/arch/s390/include/asm/cputime.h +++ b/arch/s390/include/asm/cputime.h | |||
@@ -21,15 +21,15 @@ typedef unsigned long long __nocast cputime64_t; | |||
21 | 21 | ||
22 | static inline unsigned long __div(unsigned long long n, unsigned long base) | 22 | static inline unsigned long __div(unsigned long long n, unsigned long base) |
23 | { | 23 | { |
24 | #ifndef __s390x__ | 24 | #ifndef CONFIG_64BIT |
25 | register_pair rp; | 25 | register_pair rp; |
26 | 26 | ||
27 | rp.pair = n >> 1; | 27 | rp.pair = n >> 1; |
28 | asm ("dr %0,%1" : "+d" (rp) : "d" (base >> 1)); | 28 | asm ("dr %0,%1" : "+d" (rp) : "d" (base >> 1)); |
29 | return rp.subreg.odd; | 29 | return rp.subreg.odd; |
30 | #else /* __s390x__ */ | 30 | #else /* CONFIG_64BIT */ |
31 | return n / base; | 31 | return n / base; |
32 | #endif /* __s390x__ */ | 32 | #endif /* CONFIG_64BIT */ |
33 | } | 33 | } |
34 | 34 | ||
35 | #define cputime_one_jiffy jiffies_to_cputime(1) | 35 | #define cputime_one_jiffy jiffies_to_cputime(1) |
@@ -100,7 +100,7 @@ static inline void cputime_to_timespec(const cputime_t cputime, | |||
100 | struct timespec *value) | 100 | struct timespec *value) |
101 | { | 101 | { |
102 | unsigned long long __cputime = (__force unsigned long long) cputime; | 102 | unsigned long long __cputime = (__force unsigned long long) cputime; |
103 | #ifndef __s390x__ | 103 | #ifndef CONFIG_64BIT |
104 | register_pair rp; | 104 | register_pair rp; |
105 | 105 | ||
106 | rp.pair = __cputime >> 1; | 106 | rp.pair = __cputime >> 1; |
@@ -128,7 +128,7 @@ static inline void cputime_to_timeval(const cputime_t cputime, | |||
128 | struct timeval *value) | 128 | struct timeval *value) |
129 | { | 129 | { |
130 | unsigned long long __cputime = (__force unsigned long long) cputime; | 130 | unsigned long long __cputime = (__force unsigned long long) cputime; |
131 | #ifndef __s390x__ | 131 | #ifndef CONFIG_64BIT |
132 | register_pair rp; | 132 | register_pair rp; |
133 | 133 | ||
134 | rp.pair = __cputime >> 1; | 134 | rp.pair = __cputime >> 1; |
diff --git a/arch/s390/include/asm/ctl_reg.h b/arch/s390/include/asm/ctl_reg.h index ecde9417d669..debfda33d1f8 100644 --- a/arch/s390/include/asm/ctl_reg.h +++ b/arch/s390/include/asm/ctl_reg.h | |||
@@ -7,7 +7,7 @@ | |||
7 | #ifndef __ASM_CTL_REG_H | 7 | #ifndef __ASM_CTL_REG_H |
8 | #define __ASM_CTL_REG_H | 8 | #define __ASM_CTL_REG_H |
9 | 9 | ||
10 | #ifdef __s390x__ | 10 | #ifdef CONFIG_64BIT |
11 | 11 | ||
12 | #define __ctl_load(array, low, high) ({ \ | 12 | #define __ctl_load(array, low, high) ({ \ |
13 | typedef struct { char _[sizeof(array)]; } addrtype; \ | 13 | typedef struct { char _[sizeof(array)]; } addrtype; \ |
@@ -25,7 +25,7 @@ | |||
25 | : "i" (low), "i" (high)); \ | 25 | : "i" (low), "i" (high)); \ |
26 | }) | 26 | }) |
27 | 27 | ||
28 | #else /* __s390x__ */ | 28 | #else /* CONFIG_64BIT */ |
29 | 29 | ||
30 | #define __ctl_load(array, low, high) ({ \ | 30 | #define __ctl_load(array, low, high) ({ \ |
31 | typedef struct { char _[sizeof(array)]; } addrtype; \ | 31 | typedef struct { char _[sizeof(array)]; } addrtype; \ |
@@ -43,7 +43,7 @@ | |||
43 | : "i" (low), "i" (high)); \ | 43 | : "i" (low), "i" (high)); \ |
44 | }) | 44 | }) |
45 | 45 | ||
46 | #endif /* __s390x__ */ | 46 | #endif /* CONFIG_64BIT */ |
47 | 47 | ||
48 | #define __ctl_set_bit(cr, bit) ({ \ | 48 | #define __ctl_set_bit(cr, bit) ({ \ |
49 | unsigned long __dummy; \ | 49 | unsigned long __dummy; \ |
diff --git a/arch/s390/include/asm/current.h b/arch/s390/include/asm/current.h index 83cf36cde2da..7a68084ec2f0 100644 --- a/arch/s390/include/asm/current.h +++ b/arch/s390/include/asm/current.h | |||
@@ -11,13 +11,10 @@ | |||
11 | #ifndef _S390_CURRENT_H | 11 | #ifndef _S390_CURRENT_H |
12 | #define _S390_CURRENT_H | 12 | #define _S390_CURRENT_H |
13 | 13 | ||
14 | #ifdef __KERNEL__ | ||
15 | #include <asm/lowcore.h> | 14 | #include <asm/lowcore.h> |
16 | 15 | ||
17 | struct task_struct; | 16 | struct task_struct; |
18 | 17 | ||
19 | #define current ((struct task_struct *const)S390_lowcore.current_task) | 18 | #define current ((struct task_struct *const)S390_lowcore.current_task) |
20 | 19 | ||
21 | #endif | ||
22 | |||
23 | #endif /* !(_S390_CURRENT_H) */ | 20 | #endif /* !(_S390_CURRENT_H) */ |
diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h index c4ee39f7a4d6..06151e6a3098 100644 --- a/arch/s390/include/asm/elf.h +++ b/arch/s390/include/asm/elf.h | |||
@@ -107,11 +107,11 @@ | |||
107 | /* | 107 | /* |
108 | * These are used to set parameters in the core dumps. | 108 | * These are used to set parameters in the core dumps. |
109 | */ | 109 | */ |
110 | #ifndef __s390x__ | 110 | #ifndef CONFIG_64BIT |
111 | #define ELF_CLASS ELFCLASS32 | 111 | #define ELF_CLASS ELFCLASS32 |
112 | #else /* __s390x__ */ | 112 | #else /* CONFIG_64BIT */ |
113 | #define ELF_CLASS ELFCLASS64 | 113 | #define ELF_CLASS ELFCLASS64 |
114 | #endif /* __s390x__ */ | 114 | #endif /* CONFIG_64BIT */ |
115 | #define ELF_DATA ELFDATA2MSB | 115 | #define ELF_DATA ELFDATA2MSB |
116 | #define ELF_ARCH EM_S390 | 116 | #define ELF_ARCH EM_S390 |
117 | 117 | ||
@@ -181,9 +181,9 @@ extern unsigned long elf_hwcap; | |||
181 | extern char elf_platform[]; | 181 | extern char elf_platform[]; |
182 | #define ELF_PLATFORM (elf_platform) | 182 | #define ELF_PLATFORM (elf_platform) |
183 | 183 | ||
184 | #ifndef __s390x__ | 184 | #ifndef CONFIG_64BIT |
185 | #define SET_PERSONALITY(ex) set_personality(PER_LINUX) | 185 | #define SET_PERSONALITY(ex) set_personality(PER_LINUX) |
186 | #else /* __s390x__ */ | 186 | #else /* CONFIG_64BIT */ |
187 | #define SET_PERSONALITY(ex) \ | 187 | #define SET_PERSONALITY(ex) \ |
188 | do { \ | 188 | do { \ |
189 | if (personality(current->personality) != PER_LINUX32) \ | 189 | if (personality(current->personality) != PER_LINUX32) \ |
@@ -194,7 +194,7 @@ do { \ | |||
194 | else \ | 194 | else \ |
195 | clear_thread_flag(TIF_31BIT); \ | 195 | clear_thread_flag(TIF_31BIT); \ |
196 | } while (0) | 196 | } while (0) |
197 | #endif /* __s390x__ */ | 197 | #endif /* CONFIG_64BIT */ |
198 | 198 | ||
199 | #define STACK_RND_MASK 0x7ffUL | 199 | #define STACK_RND_MASK 0x7ffUL |
200 | 200 | ||
diff --git a/arch/s390/include/asm/futex.h b/arch/s390/include/asm/futex.h index 81cf36b691f1..96bc83ea5c90 100644 --- a/arch/s390/include/asm/futex.h +++ b/arch/s390/include/asm/futex.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef _ASM_S390_FUTEX_H | 1 | #ifndef _ASM_S390_FUTEX_H |
2 | #define _ASM_S390_FUTEX_H | 2 | #define _ASM_S390_FUTEX_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | #include <linux/futex.h> | 4 | #include <linux/futex.h> |
7 | #include <linux/uaccess.h> | 5 | #include <linux/uaccess.h> |
8 | #include <asm/errno.h> | 6 | #include <asm/errno.h> |
@@ -48,5 +46,4 @@ static inline int futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, | |||
48 | return uaccess.futex_atomic_cmpxchg(uval, uaddr, oldval, newval); | 46 | return uaccess.futex_atomic_cmpxchg(uval, uaddr, oldval, newval); |
49 | } | 47 | } |
50 | 48 | ||
51 | #endif /* __KERNEL__ */ | ||
52 | #endif /* _ASM_S390_FUTEX_H */ | 49 | #endif /* _ASM_S390_FUTEX_H */ |
diff --git a/arch/s390/include/asm/idals.h b/arch/s390/include/asm/idals.h index aae276d00383..aef0dde340d1 100644 --- a/arch/s390/include/asm/idals.h +++ b/arch/s390/include/asm/idals.h | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <asm/cio.h> | 20 | #include <asm/cio.h> |
21 | #include <asm/uaccess.h> | 21 | #include <asm/uaccess.h> |
22 | 22 | ||
23 | #ifdef __s390x__ | 23 | #ifdef CONFIG_64BIT |
24 | #define IDA_SIZE_LOG 12 /* 11 for 2k , 12 for 4k */ | 24 | #define IDA_SIZE_LOG 12 /* 11 for 2k , 12 for 4k */ |
25 | #else | 25 | #else |
26 | #define IDA_SIZE_LOG 11 /* 11 for 2k , 12 for 4k */ | 26 | #define IDA_SIZE_LOG 11 /* 11 for 2k , 12 for 4k */ |
@@ -33,7 +33,7 @@ | |||
33 | static inline int | 33 | static inline int |
34 | idal_is_needed(void *vaddr, unsigned int length) | 34 | idal_is_needed(void *vaddr, unsigned int length) |
35 | { | 35 | { |
36 | #ifdef __s390x__ | 36 | #ifdef CONFIG_64BIT |
37 | return ((__pa(vaddr) + length - 1) >> 31) != 0; | 37 | return ((__pa(vaddr) + length - 1) >> 31) != 0; |
38 | #else | 38 | #else |
39 | return 0; | 39 | return 0; |
@@ -78,7 +78,7 @@ static inline unsigned long *idal_create_words(unsigned long *idaws, | |||
78 | static inline int | 78 | static inline int |
79 | set_normalized_cda(struct ccw1 * ccw, void *vaddr) | 79 | set_normalized_cda(struct ccw1 * ccw, void *vaddr) |
80 | { | 80 | { |
81 | #ifdef __s390x__ | 81 | #ifdef CONFIG_64BIT |
82 | unsigned int nridaws; | 82 | unsigned int nridaws; |
83 | unsigned long *idal; | 83 | unsigned long *idal; |
84 | 84 | ||
@@ -105,7 +105,7 @@ set_normalized_cda(struct ccw1 * ccw, void *vaddr) | |||
105 | static inline void | 105 | static inline void |
106 | clear_normalized_cda(struct ccw1 * ccw) | 106 | clear_normalized_cda(struct ccw1 * ccw) |
107 | { | 107 | { |
108 | #ifdef __s390x__ | 108 | #ifdef CONFIG_64BIT |
109 | if (ccw->flags & CCW_FLAG_IDA) { | 109 | if (ccw->flags & CCW_FLAG_IDA) { |
110 | kfree((void *)(unsigned long) ccw->cda); | 110 | kfree((void *)(unsigned long) ccw->cda); |
111 | ccw->flags &= ~CCW_FLAG_IDA; | 111 | ccw->flags &= ~CCW_FLAG_IDA; |
@@ -182,7 +182,7 @@ idal_buffer_free(struct idal_buffer *ib) | |||
182 | static inline int | 182 | static inline int |
183 | __idal_buffer_is_needed(struct idal_buffer *ib) | 183 | __idal_buffer_is_needed(struct idal_buffer *ib) |
184 | { | 184 | { |
185 | #ifdef __s390x__ | 185 | #ifdef CONFIG_64BIT |
186 | return ib->size > (4096ul << ib->page_order) || | 186 | return ib->size > (4096ul << ib->page_order) || |
187 | idal_is_needed(ib->data[0], ib->size); | 187 | idal_is_needed(ib->data[0], ib->size); |
188 | #else | 188 | #else |
diff --git a/arch/s390/include/asm/io.h b/arch/s390/include/asm/io.h index 27216d317991..f81a0975cbea 100644 --- a/arch/s390/include/asm/io.h +++ b/arch/s390/include/asm/io.h | |||
@@ -11,8 +11,6 @@ | |||
11 | #ifndef _S390_IO_H | 11 | #ifndef _S390_IO_H |
12 | #define _S390_IO_H | 12 | #define _S390_IO_H |
13 | 13 | ||
14 | #ifdef __KERNEL__ | ||
15 | |||
16 | #include <asm/page.h> | 14 | #include <asm/page.h> |
17 | 15 | ||
18 | #define IO_SPACE_LIMIT 0xffffffff | 16 | #define IO_SPACE_LIMIT 0xffffffff |
@@ -46,6 +44,4 @@ void unxlate_dev_mem_ptr(unsigned long phys, void *addr); | |||
46 | */ | 44 | */ |
47 | #define xlate_dev_kmem_ptr(p) p | 45 | #define xlate_dev_kmem_ptr(p) p |
48 | 46 | ||
49 | #endif /* __KERNEL__ */ | ||
50 | |||
51 | #endif | 47 | #endif |
diff --git a/arch/s390/include/asm/irq.h b/arch/s390/include/asm/irq.h index 5289cacd4861..2b9d41899d21 100644 --- a/arch/s390/include/asm/irq.h +++ b/arch/s390/include/asm/irq.h | |||
@@ -17,7 +17,8 @@ enum interruption_class { | |||
17 | EXTINT_VRT, | 17 | EXTINT_VRT, |
18 | EXTINT_SCP, | 18 | EXTINT_SCP, |
19 | EXTINT_IUC, | 19 | EXTINT_IUC, |
20 | EXTINT_CPM, | 20 | EXTINT_CMS, |
21 | EXTINT_CMC, | ||
21 | IOINT_CIO, | 22 | IOINT_CIO, |
22 | IOINT_QAI, | 23 | IOINT_QAI, |
23 | IOINT_DAS, | 24 | IOINT_DAS, |
diff --git a/arch/s390/include/asm/kexec.h b/arch/s390/include/asm/kexec.h index 3f30dac804ea..f4f38826eebb 100644 --- a/arch/s390/include/asm/kexec.h +++ b/arch/s390/include/asm/kexec.h | |||
@@ -10,10 +10,8 @@ | |||
10 | #ifndef _S390_KEXEC_H | 10 | #ifndef _S390_KEXEC_H |
11 | #define _S390_KEXEC_H | 11 | #define _S390_KEXEC_H |
12 | 12 | ||
13 | #ifdef __KERNEL__ | ||
14 | #include <asm/page.h> | ||
15 | #endif | ||
16 | #include <asm/processor.h> | 13 | #include <asm/processor.h> |
14 | #include <asm/page.h> | ||
17 | /* | 15 | /* |
18 | * KEXEC_SOURCE_MEMORY_LIMIT maximum page get_free_page can return. | 16 | * KEXEC_SOURCE_MEMORY_LIMIT maximum page get_free_page can return. |
19 | * I.e. Maximum page that is mapped directly into kernel memory, | 17 | * I.e. Maximum page that is mapped directly into kernel memory, |
diff --git a/arch/s390/include/asm/kmap_types.h b/arch/s390/include/asm/kmap_types.h index 94ec3ee07983..0a88622339ee 100644 --- a/arch/s390/include/asm/kmap_types.h +++ b/arch/s390/include/asm/kmap_types.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifdef __KERNEL__ | ||
2 | #ifndef _ASM_KMAP_TYPES_H | 1 | #ifndef _ASM_KMAP_TYPES_H |
3 | #define _ASM_KMAP_TYPES_H | 2 | #define _ASM_KMAP_TYPES_H |
4 | 3 | ||
5 | #include <asm-generic/kmap_types.h> | 4 | #include <asm-generic/kmap_types.h> |
6 | 5 | ||
7 | #endif | 6 | #endif |
8 | #endif /* __KERNEL__ */ | ||
diff --git a/arch/s390/include/asm/mmu_context.h b/arch/s390/include/asm/mmu_context.h index 5d09e405c54d..69bdf72e95ec 100644 --- a/arch/s390/include/asm/mmu_context.h +++ b/arch/s390/include/asm/mmu_context.h | |||
@@ -49,7 +49,7 @@ static inline int init_new_context(struct task_struct *tsk, | |||
49 | 49 | ||
50 | #define destroy_context(mm) do { } while (0) | 50 | #define destroy_context(mm) do { } while (0) |
51 | 51 | ||
52 | #ifndef __s390x__ | 52 | #ifndef CONFIG_64BIT |
53 | #define LCTL_OPCODE "lctl" | 53 | #define LCTL_OPCODE "lctl" |
54 | #else | 54 | #else |
55 | #define LCTL_OPCODE "lctlg" | 55 | #define LCTL_OPCODE "lctlg" |
diff --git a/arch/s390/include/asm/module.h b/arch/s390/include/asm/module.h index 1cc1c5af705a..f0b6b26b6e59 100644 --- a/arch/s390/include/asm/module.h +++ b/arch/s390/include/asm/module.h | |||
@@ -28,7 +28,7 @@ struct mod_arch_specific | |||
28 | struct mod_arch_syminfo *syminfo; | 28 | struct mod_arch_syminfo *syminfo; |
29 | }; | 29 | }; |
30 | 30 | ||
31 | #ifdef __s390x__ | 31 | #ifdef CONFIG_64BIT |
32 | #define ElfW(x) Elf64_ ## x | 32 | #define ElfW(x) Elf64_ ## x |
33 | #define ELFW(x) ELF64_ ## x | 33 | #define ELFW(x) ELF64_ ## x |
34 | #else | 34 | #else |
diff --git a/arch/s390/include/asm/os_info.h b/arch/s390/include/asm/os_info.h index d07518af09ea..295f2c4f1c96 100644 --- a/arch/s390/include/asm/os_info.h +++ b/arch/s390/include/asm/os_info.h | |||
@@ -13,7 +13,6 @@ | |||
13 | 13 | ||
14 | #define OS_INFO_VMCOREINFO 0 | 14 | #define OS_INFO_VMCOREINFO 0 |
15 | #define OS_INFO_REIPL_BLOCK 1 | 15 | #define OS_INFO_REIPL_BLOCK 1 |
16 | #define OS_INFO_INIT_FN 2 | ||
17 | 16 | ||
18 | struct os_info_entry { | 17 | struct os_info_entry { |
19 | u64 addr; | 18 | u64 addr; |
@@ -28,8 +27,8 @@ struct os_info { | |||
28 | u16 version_minor; | 27 | u16 version_minor; |
29 | u64 crashkernel_addr; | 28 | u64 crashkernel_addr; |
30 | u64 crashkernel_size; | 29 | u64 crashkernel_size; |
31 | struct os_info_entry entry[3]; | 30 | struct os_info_entry entry[2]; |
32 | u8 reserved[4004]; | 31 | u8 reserved[4024]; |
33 | } __packed; | 32 | } __packed; |
34 | 33 | ||
35 | void os_info_init(void); | 34 | void os_info_init(void); |
diff --git a/arch/s390/include/asm/percpu.h b/arch/s390/include/asm/percpu.h index 0fbd1899c7b0..6537e72e0853 100644 --- a/arch/s390/include/asm/percpu.h +++ b/arch/s390/include/asm/percpu.h | |||
@@ -15,7 +15,7 @@ | |||
15 | * per cpu area, use weak definitions to force the compiler to | 15 | * per cpu area, use weak definitions to force the compiler to |
16 | * generate external references. | 16 | * generate external references. |
17 | */ | 17 | */ |
18 | #if defined(CONFIG_SMP) && defined(__s390x__) && defined(MODULE) | 18 | #if defined(CONFIG_SMP) && defined(CONFIG_64BIT) && defined(MODULE) |
19 | #define ARCH_NEEDS_WEAK_PER_CPU | 19 | #define ARCH_NEEDS_WEAK_PER_CPU |
20 | #endif | 20 | #endif |
21 | 21 | ||
diff --git a/arch/s390/include/asm/pgalloc.h b/arch/s390/include/asm/pgalloc.h index 78e3041919de..43078c194394 100644 --- a/arch/s390/include/asm/pgalloc.h +++ b/arch/s390/include/asm/pgalloc.h | |||
@@ -48,7 +48,7 @@ static inline void crst_table_init(unsigned long *crst, unsigned long entry) | |||
48 | clear_table(crst, entry, sizeof(unsigned long)*2048); | 48 | clear_table(crst, entry, sizeof(unsigned long)*2048); |
49 | } | 49 | } |
50 | 50 | ||
51 | #ifndef __s390x__ | 51 | #ifndef CONFIG_64BIT |
52 | 52 | ||
53 | static inline unsigned long pgd_entry_type(struct mm_struct *mm) | 53 | static inline unsigned long pgd_entry_type(struct mm_struct *mm) |
54 | { | 54 | { |
@@ -64,7 +64,7 @@ static inline unsigned long pgd_entry_type(struct mm_struct *mm) | |||
64 | #define pgd_populate(mm, pgd, pud) BUG() | 64 | #define pgd_populate(mm, pgd, pud) BUG() |
65 | #define pud_populate(mm, pud, pmd) BUG() | 65 | #define pud_populate(mm, pud, pmd) BUG() |
66 | 66 | ||
67 | #else /* __s390x__ */ | 67 | #else /* CONFIG_64BIT */ |
68 | 68 | ||
69 | static inline unsigned long pgd_entry_type(struct mm_struct *mm) | 69 | static inline unsigned long pgd_entry_type(struct mm_struct *mm) |
70 | { | 70 | { |
@@ -106,7 +106,7 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) | |||
106 | pud_val(*pud) = _REGION3_ENTRY | __pa(pmd); | 106 | pud_val(*pud) = _REGION3_ENTRY | __pa(pmd); |
107 | } | 107 | } |
108 | 108 | ||
109 | #endif /* __s390x__ */ | 109 | #endif /* CONFIG_64BIT */ |
110 | 110 | ||
111 | static inline pgd_t *pgd_alloc(struct mm_struct *mm) | 111 | static inline pgd_t *pgd_alloc(struct mm_struct *mm) |
112 | { | 112 | { |
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index 011358c1b18e..b3227415abda 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h | |||
@@ -74,15 +74,15 @@ static inline int is_zero_pfn(unsigned long pfn) | |||
74 | * table can map | 74 | * table can map |
75 | * PGDIR_SHIFT determines what a third-level page table entry can map | 75 | * PGDIR_SHIFT determines what a third-level page table entry can map |
76 | */ | 76 | */ |
77 | #ifndef __s390x__ | 77 | #ifndef CONFIG_64BIT |
78 | # define PMD_SHIFT 20 | 78 | # define PMD_SHIFT 20 |
79 | # define PUD_SHIFT 20 | 79 | # define PUD_SHIFT 20 |
80 | # define PGDIR_SHIFT 20 | 80 | # define PGDIR_SHIFT 20 |
81 | #else /* __s390x__ */ | 81 | #else /* CONFIG_64BIT */ |
82 | # define PMD_SHIFT 20 | 82 | # define PMD_SHIFT 20 |
83 | # define PUD_SHIFT 31 | 83 | # define PUD_SHIFT 31 |
84 | # define PGDIR_SHIFT 42 | 84 | # define PGDIR_SHIFT 42 |
85 | #endif /* __s390x__ */ | 85 | #endif /* CONFIG_64BIT */ |
86 | 86 | ||
87 | #define PMD_SIZE (1UL << PMD_SHIFT) | 87 | #define PMD_SIZE (1UL << PMD_SHIFT) |
88 | #define PMD_MASK (~(PMD_SIZE-1)) | 88 | #define PMD_MASK (~(PMD_SIZE-1)) |
@@ -98,13 +98,13 @@ static inline int is_zero_pfn(unsigned long pfn) | |||
98 | * that leads to 1024 pte per pgd | 98 | * that leads to 1024 pte per pgd |
99 | */ | 99 | */ |
100 | #define PTRS_PER_PTE 256 | 100 | #define PTRS_PER_PTE 256 |
101 | #ifndef __s390x__ | 101 | #ifndef CONFIG_64BIT |
102 | #define PTRS_PER_PMD 1 | 102 | #define PTRS_PER_PMD 1 |
103 | #define PTRS_PER_PUD 1 | 103 | #define PTRS_PER_PUD 1 |
104 | #else /* __s390x__ */ | 104 | #else /* CONFIG_64BIT */ |
105 | #define PTRS_PER_PMD 2048 | 105 | #define PTRS_PER_PMD 2048 |
106 | #define PTRS_PER_PUD 2048 | 106 | #define PTRS_PER_PUD 2048 |
107 | #endif /* __s390x__ */ | 107 | #endif /* CONFIG_64BIT */ |
108 | #define PTRS_PER_PGD 2048 | 108 | #define PTRS_PER_PGD 2048 |
109 | 109 | ||
110 | #define FIRST_USER_ADDRESS 0 | 110 | #define FIRST_USER_ADDRESS 0 |
@@ -276,7 +276,7 @@ extern struct page *vmemmap; | |||
276 | * swap pte is 1011 and 0001, 0011, 0101, 0111 are invalid. | 276 | * swap pte is 1011 and 0001, 0011, 0101, 0111 are invalid. |
277 | */ | 277 | */ |
278 | 278 | ||
279 | #ifndef __s390x__ | 279 | #ifndef CONFIG_64BIT |
280 | 280 | ||
281 | /* Bits in the segment table address-space-control-element */ | 281 | /* Bits in the segment table address-space-control-element */ |
282 | #define _ASCE_SPACE_SWITCH 0x80000000UL /* space switch event */ | 282 | #define _ASCE_SPACE_SWITCH 0x80000000UL /* space switch event */ |
@@ -308,7 +308,7 @@ extern struct page *vmemmap; | |||
308 | #define KVM_UR_BIT 0x00008000UL | 308 | #define KVM_UR_BIT 0x00008000UL |
309 | #define KVM_UC_BIT 0x00004000UL | 309 | #define KVM_UC_BIT 0x00004000UL |
310 | 310 | ||
311 | #else /* __s390x__ */ | 311 | #else /* CONFIG_64BIT */ |
312 | 312 | ||
313 | /* Bits in the segment/region table address-space-control-element */ | 313 | /* Bits in the segment/region table address-space-control-element */ |
314 | #define _ASCE_ORIGIN ~0xfffUL/* segment table origin */ | 314 | #define _ASCE_ORIGIN ~0xfffUL/* segment table origin */ |
@@ -363,7 +363,7 @@ extern struct page *vmemmap; | |||
363 | #define KVM_UR_BIT 0x0000800000000000UL | 363 | #define KVM_UR_BIT 0x0000800000000000UL |
364 | #define KVM_UC_BIT 0x0000400000000000UL | 364 | #define KVM_UC_BIT 0x0000400000000000UL |
365 | 365 | ||
366 | #endif /* __s390x__ */ | 366 | #endif /* CONFIG_64BIT */ |
367 | 367 | ||
368 | /* | 368 | /* |
369 | * A user page table pointer has the space-switch-event bit, the | 369 | * A user page table pointer has the space-switch-event bit, the |
@@ -424,7 +424,7 @@ static inline int mm_has_pgste(struct mm_struct *mm) | |||
424 | /* | 424 | /* |
425 | * pgd/pmd/pte query functions | 425 | * pgd/pmd/pte query functions |
426 | */ | 426 | */ |
427 | #ifndef __s390x__ | 427 | #ifndef CONFIG_64BIT |
428 | 428 | ||
429 | static inline int pgd_present(pgd_t pgd) { return 1; } | 429 | static inline int pgd_present(pgd_t pgd) { return 1; } |
430 | static inline int pgd_none(pgd_t pgd) { return 0; } | 430 | static inline int pgd_none(pgd_t pgd) { return 0; } |
@@ -434,7 +434,7 @@ static inline int pud_present(pud_t pud) { return 1; } | |||
434 | static inline int pud_none(pud_t pud) { return 0; } | 434 | static inline int pud_none(pud_t pud) { return 0; } |
435 | static inline int pud_bad(pud_t pud) { return 0; } | 435 | static inline int pud_bad(pud_t pud) { return 0; } |
436 | 436 | ||
437 | #else /* __s390x__ */ | 437 | #else /* CONFIG_64BIT */ |
438 | 438 | ||
439 | static inline int pgd_present(pgd_t pgd) | 439 | static inline int pgd_present(pgd_t pgd) |
440 | { | 440 | { |
@@ -490,7 +490,7 @@ static inline int pud_bad(pud_t pud) | |||
490 | return (pud_val(pud) & mask) != 0; | 490 | return (pud_val(pud) & mask) != 0; |
491 | } | 491 | } |
492 | 492 | ||
493 | #endif /* __s390x__ */ | 493 | #endif /* CONFIG_64BIT */ |
494 | 494 | ||
495 | static inline int pmd_present(pmd_t pmd) | 495 | static inline int pmd_present(pmd_t pmd) |
496 | { | 496 | { |
@@ -741,7 +741,7 @@ static inline int pte_young(pte_t pte) | |||
741 | 741 | ||
742 | static inline void pgd_clear(pgd_t *pgd) | 742 | static inline void pgd_clear(pgd_t *pgd) |
743 | { | 743 | { |
744 | #ifdef __s390x__ | 744 | #ifdef CONFIG_64BIT |
745 | if ((pgd_val(*pgd) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R2) | 745 | if ((pgd_val(*pgd) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R2) |
746 | pgd_val(*pgd) = _REGION2_ENTRY_EMPTY; | 746 | pgd_val(*pgd) = _REGION2_ENTRY_EMPTY; |
747 | #endif | 747 | #endif |
@@ -749,7 +749,7 @@ static inline void pgd_clear(pgd_t *pgd) | |||
749 | 749 | ||
750 | static inline void pud_clear(pud_t *pud) | 750 | static inline void pud_clear(pud_t *pud) |
751 | { | 751 | { |
752 | #ifdef __s390x__ | 752 | #ifdef CONFIG_64BIT |
753 | if ((pud_val(*pud) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R3) | 753 | if ((pud_val(*pud) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R3) |
754 | pud_val(*pud) = _REGION3_ENTRY_EMPTY; | 754 | pud_val(*pud) = _REGION3_ENTRY_EMPTY; |
755 | #endif | 755 | #endif |
@@ -921,7 +921,7 @@ static inline int ptep_clear_flush_young(struct vm_area_struct *vma, | |||
921 | static inline void __ptep_ipte(unsigned long address, pte_t *ptep) | 921 | static inline void __ptep_ipte(unsigned long address, pte_t *ptep) |
922 | { | 922 | { |
923 | if (!(pte_val(*ptep) & _PAGE_INVALID)) { | 923 | if (!(pte_val(*ptep) & _PAGE_INVALID)) { |
924 | #ifndef __s390x__ | 924 | #ifndef CONFIG_64BIT |
925 | /* pto must point to the start of the segment table */ | 925 | /* pto must point to the start of the segment table */ |
926 | pte_t *pto = (pte_t *) (((unsigned long) ptep) & 0x7ffffc00); | 926 | pte_t *pto = (pte_t *) (((unsigned long) ptep) & 0x7ffffc00); |
927 | #else | 927 | #else |
@@ -1116,7 +1116,7 @@ static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) | |||
1116 | #define pgd_offset(mm, address) ((mm)->pgd + pgd_index(address)) | 1116 | #define pgd_offset(mm, address) ((mm)->pgd + pgd_index(address)) |
1117 | #define pgd_offset_k(address) pgd_offset(&init_mm, address) | 1117 | #define pgd_offset_k(address) pgd_offset(&init_mm, address) |
1118 | 1118 | ||
1119 | #ifndef __s390x__ | 1119 | #ifndef CONFIG_64BIT |
1120 | 1120 | ||
1121 | #define pmd_deref(pmd) (pmd_val(pmd) & _SEGMENT_ENTRY_ORIGIN) | 1121 | #define pmd_deref(pmd) (pmd_val(pmd) & _SEGMENT_ENTRY_ORIGIN) |
1122 | #define pud_deref(pmd) ({ BUG(); 0UL; }) | 1122 | #define pud_deref(pmd) ({ BUG(); 0UL; }) |
@@ -1125,7 +1125,7 @@ static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) | |||
1125 | #define pud_offset(pgd, address) ((pud_t *) pgd) | 1125 | #define pud_offset(pgd, address) ((pud_t *) pgd) |
1126 | #define pmd_offset(pud, address) ((pmd_t *) pud + pmd_index(address)) | 1126 | #define pmd_offset(pud, address) ((pmd_t *) pud + pmd_index(address)) |
1127 | 1127 | ||
1128 | #else /* __s390x__ */ | 1128 | #else /* CONFIG_64BIT */ |
1129 | 1129 | ||
1130 | #define pmd_deref(pmd) (pmd_val(pmd) & _SEGMENT_ENTRY_ORIGIN) | 1130 | #define pmd_deref(pmd) (pmd_val(pmd) & _SEGMENT_ENTRY_ORIGIN) |
1131 | #define pud_deref(pud) (pud_val(pud) & _REGION_ENTRY_ORIGIN) | 1131 | #define pud_deref(pud) (pud_val(pud) & _REGION_ENTRY_ORIGIN) |
@@ -1147,7 +1147,7 @@ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address) | |||
1147 | return pmd + pmd_index(address); | 1147 | return pmd + pmd_index(address); |
1148 | } | 1148 | } |
1149 | 1149 | ||
1150 | #endif /* __s390x__ */ | 1150 | #endif /* CONFIG_64BIT */ |
1151 | 1151 | ||
1152 | #define pfn_pte(pfn,pgprot) mk_pte_phys(__pa((pfn) << PAGE_SHIFT),(pgprot)) | 1152 | #define pfn_pte(pfn,pgprot) mk_pte_phys(__pa((pfn) << PAGE_SHIFT),(pgprot)) |
1153 | #define pte_pfn(x) (pte_val(x) >> PAGE_SHIFT) | 1153 | #define pte_pfn(x) (pte_val(x) >> PAGE_SHIFT) |
@@ -1196,7 +1196,7 @@ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address) | |||
1196 | * 0000000000111111111122222222223333333333444444444455 5555 5 55566 66 | 1196 | * 0000000000111111111122222222223333333333444444444455 5555 5 55566 66 |
1197 | * 0123456789012345678901234567890123456789012345678901 2345 6 78901 23 | 1197 | * 0123456789012345678901234567890123456789012345678901 2345 6 78901 23 |
1198 | */ | 1198 | */ |
1199 | #ifndef __s390x__ | 1199 | #ifndef CONFIG_64BIT |
1200 | #define __SWP_OFFSET_MASK (~0UL >> 12) | 1200 | #define __SWP_OFFSET_MASK (~0UL >> 12) |
1201 | #else | 1201 | #else |
1202 | #define __SWP_OFFSET_MASK (~0UL >> 11) | 1202 | #define __SWP_OFFSET_MASK (~0UL >> 11) |
@@ -1217,11 +1217,11 @@ static inline pte_t mk_swap_pte(unsigned long type, unsigned long offset) | |||
1217 | #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) }) | 1217 | #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) }) |
1218 | #define __swp_entry_to_pte(x) ((pte_t) { (x).val }) | 1218 | #define __swp_entry_to_pte(x) ((pte_t) { (x).val }) |
1219 | 1219 | ||
1220 | #ifndef __s390x__ | 1220 | #ifndef CONFIG_64BIT |
1221 | # define PTE_FILE_MAX_BITS 26 | 1221 | # define PTE_FILE_MAX_BITS 26 |
1222 | #else /* __s390x__ */ | 1222 | #else /* CONFIG_64BIT */ |
1223 | # define PTE_FILE_MAX_BITS 59 | 1223 | # define PTE_FILE_MAX_BITS 59 |
1224 | #endif /* __s390x__ */ | 1224 | #endif /* CONFIG_64BIT */ |
1225 | 1225 | ||
1226 | #define pte_to_pgoff(__pte) \ | 1226 | #define pte_to_pgoff(__pte) \ |
1227 | ((((__pte).pte >> 12) << 7) + (((__pte).pte >> 1) & 0x7f)) | 1227 | ((((__pte).pte >> 12) << 7) + (((__pte).pte >> 1) & 0x7f)) |
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h index 6cbf31311673..20d0585cf905 100644 --- a/arch/s390/include/asm/processor.h +++ b/arch/s390/include/asm/processor.h | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <asm/ptrace.h> | 20 | #include <asm/ptrace.h> |
21 | #include <asm/setup.h> | 21 | #include <asm/setup.h> |
22 | 22 | ||
23 | #ifdef __KERNEL__ | ||
24 | /* | 23 | /* |
25 | * Default implementation of macro that returns current | 24 | * Default implementation of macro that returns current |
26 | * instruction pointer ("program counter"). | 25 | * instruction pointer ("program counter"). |
@@ -33,39 +32,33 @@ static inline void get_cpu_id(struct cpuid *ptr) | |||
33 | } | 32 | } |
34 | 33 | ||
35 | extern void s390_adjust_jiffies(void); | 34 | extern void s390_adjust_jiffies(void); |
36 | extern int get_cpu_capability(unsigned int *); | ||
37 | extern const struct seq_operations cpuinfo_op; | 35 | extern const struct seq_operations cpuinfo_op; |
38 | extern int sysctl_ieee_emulation_warnings; | 36 | extern int sysctl_ieee_emulation_warnings; |
39 | 37 | ||
40 | /* | 38 | /* |
41 | * User space process size: 2GB for 31 bit, 4TB or 8PT for 64 bit. | 39 | * User space process size: 2GB for 31 bit, 4TB or 8PT for 64 bit. |
42 | */ | 40 | */ |
43 | #ifndef __s390x__ | 41 | #ifndef CONFIG_64BIT |
44 | 42 | ||
45 | #define TASK_SIZE (1UL << 31) | 43 | #define TASK_SIZE (1UL << 31) |
46 | #define TASK_UNMAPPED_BASE (1UL << 30) | 44 | #define TASK_UNMAPPED_BASE (1UL << 30) |
47 | 45 | ||
48 | #else /* __s390x__ */ | 46 | #else /* CONFIG_64BIT */ |
49 | 47 | ||
50 | #define TASK_SIZE_OF(tsk) ((tsk)->mm->context.asce_limit) | 48 | #define TASK_SIZE_OF(tsk) ((tsk)->mm->context.asce_limit) |
51 | #define TASK_UNMAPPED_BASE (test_thread_flag(TIF_31BIT) ? \ | 49 | #define TASK_UNMAPPED_BASE (test_thread_flag(TIF_31BIT) ? \ |
52 | (1UL << 30) : (1UL << 41)) | 50 | (1UL << 30) : (1UL << 41)) |
53 | #define TASK_SIZE TASK_SIZE_OF(current) | 51 | #define TASK_SIZE TASK_SIZE_OF(current) |
54 | 52 | ||
55 | #endif /* __s390x__ */ | 53 | #endif /* CONFIG_64BIT */ |
56 | 54 | ||
57 | #ifdef __KERNEL__ | 55 | #ifndef CONFIG_64BIT |
58 | |||
59 | #ifndef __s390x__ | ||
60 | #define STACK_TOP (1UL << 31) | 56 | #define STACK_TOP (1UL << 31) |
61 | #define STACK_TOP_MAX (1UL << 31) | 57 | #define STACK_TOP_MAX (1UL << 31) |
62 | #else /* __s390x__ */ | 58 | #else /* CONFIG_64BIT */ |
63 | #define STACK_TOP (1UL << (test_thread_flag(TIF_31BIT) ? 31:42)) | 59 | #define STACK_TOP (1UL << (test_thread_flag(TIF_31BIT) ? 31:42)) |
64 | #define STACK_TOP_MAX (1UL << 42) | 60 | #define STACK_TOP_MAX (1UL << 42) |
65 | #endif /* __s390x__ */ | 61 | #endif /* CONFIG_64BIT */ |
66 | |||
67 | |||
68 | #endif | ||
69 | 62 | ||
70 | #define HAVE_ARCH_PICK_MMAP_LAYOUT | 63 | #define HAVE_ARCH_PICK_MMAP_LAYOUT |
71 | 64 | ||
@@ -182,7 +175,7 @@ static inline void psw_set_key(unsigned int key) | |||
182 | */ | 175 | */ |
183 | static inline void __load_psw(psw_t psw) | 176 | static inline void __load_psw(psw_t psw) |
184 | { | 177 | { |
185 | #ifndef __s390x__ | 178 | #ifndef CONFIG_64BIT |
186 | asm volatile("lpsw %0" : : "Q" (psw) : "cc"); | 179 | asm volatile("lpsw %0" : : "Q" (psw) : "cc"); |
187 | #else | 180 | #else |
188 | asm volatile("lpswe %0" : : "Q" (psw) : "cc"); | 181 | asm volatile("lpswe %0" : : "Q" (psw) : "cc"); |
@@ -200,7 +193,7 @@ static inline void __load_psw_mask (unsigned long mask) | |||
200 | 193 | ||
201 | psw.mask = mask; | 194 | psw.mask = mask; |
202 | 195 | ||
203 | #ifndef __s390x__ | 196 | #ifndef CONFIG_64BIT |
204 | asm volatile( | 197 | asm volatile( |
205 | " basr %0,0\n" | 198 | " basr %0,0\n" |
206 | "0: ahi %0,1f-0b\n" | 199 | "0: ahi %0,1f-0b\n" |
@@ -208,14 +201,14 @@ static inline void __load_psw_mask (unsigned long mask) | |||
208 | " lpsw %1\n" | 201 | " lpsw %1\n" |
209 | "1:" | 202 | "1:" |
210 | : "=&d" (addr), "=Q" (psw) : "Q" (psw) : "memory", "cc"); | 203 | : "=&d" (addr), "=Q" (psw) : "Q" (psw) : "memory", "cc"); |
211 | #else /* __s390x__ */ | 204 | #else /* CONFIG_64BIT */ |
212 | asm volatile( | 205 | asm volatile( |
213 | " larl %0,1f\n" | 206 | " larl %0,1f\n" |
214 | " stg %0,%O1+8(%R1)\n" | 207 | " stg %0,%O1+8(%R1)\n" |
215 | " lpswe %1\n" | 208 | " lpswe %1\n" |
216 | "1:" | 209 | "1:" |
217 | : "=&d" (addr), "=Q" (psw) : "Q" (psw) : "memory", "cc"); | 210 | : "=&d" (addr), "=Q" (psw) : "Q" (psw) : "memory", "cc"); |
218 | #endif /* __s390x__ */ | 211 | #endif /* CONFIG_64BIT */ |
219 | } | 212 | } |
220 | 213 | ||
221 | /* | 214 | /* |
@@ -223,7 +216,7 @@ static inline void __load_psw_mask (unsigned long mask) | |||
223 | */ | 216 | */ |
224 | static inline unsigned long __rewind_psw(psw_t psw, unsigned long ilc) | 217 | static inline unsigned long __rewind_psw(psw_t psw, unsigned long ilc) |
225 | { | 218 | { |
226 | #ifndef __s390x__ | 219 | #ifndef CONFIG_64BIT |
227 | if (psw.addr & PSW_ADDR_AMODE) | 220 | if (psw.addr & PSW_ADDR_AMODE) |
228 | /* 31 bit mode */ | 221 | /* 31 bit mode */ |
229 | return (psw.addr - ilc) | PSW_ADDR_AMODE; | 222 | return (psw.addr - ilc) | PSW_ADDR_AMODE; |
@@ -253,7 +246,7 @@ static inline void __noreturn disabled_wait(unsigned long code) | |||
253 | * Store status and then load disabled wait psw, | 246 | * Store status and then load disabled wait psw, |
254 | * the processor is dead afterwards | 247 | * the processor is dead afterwards |
255 | */ | 248 | */ |
256 | #ifndef __s390x__ | 249 | #ifndef CONFIG_64BIT |
257 | asm volatile( | 250 | asm volatile( |
258 | " stctl 0,0,0(%2)\n" | 251 | " stctl 0,0,0(%2)\n" |
259 | " ni 0(%2),0xef\n" /* switch off protection */ | 252 | " ni 0(%2),0xef\n" /* switch off protection */ |
@@ -272,7 +265,7 @@ static inline void __noreturn disabled_wait(unsigned long code) | |||
272 | " lpsw 0(%1)" | 265 | " lpsw 0(%1)" |
273 | : "=m" (ctl_buf) | 266 | : "=m" (ctl_buf) |
274 | : "a" (&dw_psw), "a" (&ctl_buf), "m" (dw_psw) : "cc"); | 267 | : "a" (&dw_psw), "a" (&ctl_buf), "m" (dw_psw) : "cc"); |
275 | #else /* __s390x__ */ | 268 | #else /* CONFIG_64BIT */ |
276 | asm volatile( | 269 | asm volatile( |
277 | " stctg 0,0,0(%2)\n" | 270 | " stctg 0,0,0(%2)\n" |
278 | " ni 4(%2),0xef\n" /* switch off protection */ | 271 | " ni 4(%2),0xef\n" /* switch off protection */ |
@@ -305,7 +298,7 @@ static inline void __noreturn disabled_wait(unsigned long code) | |||
305 | " lpswe 0(%1)" | 298 | " lpswe 0(%1)" |
306 | : "=m" (ctl_buf) | 299 | : "=m" (ctl_buf) |
307 | : "a" (&dw_psw), "a" (&ctl_buf), "m" (dw_psw) : "cc", "0", "1"); | 300 | : "a" (&dw_psw), "a" (&ctl_buf), "m" (dw_psw) : "cc", "0", "1"); |
308 | #endif /* __s390x__ */ | 301 | #endif /* CONFIG_64BIT */ |
309 | while (1); | 302 | while (1); |
310 | } | 303 | } |
311 | 304 | ||
@@ -338,12 +331,10 @@ extern void (*s390_base_ext_handler_fn)(void); | |||
338 | 331 | ||
339 | #define ARCH_LOW_ADDRESS_LIMIT 0x7fffffffUL | 332 | #define ARCH_LOW_ADDRESS_LIMIT 0x7fffffffUL |
340 | 333 | ||
341 | #endif | ||
342 | |||
343 | /* | 334 | /* |
344 | * Helper macro for exception table entries | 335 | * Helper macro for exception table entries |
345 | */ | 336 | */ |
346 | #ifndef __s390x__ | 337 | #ifndef CONFIG_64BIT |
347 | #define EX_TABLE(_fault,_target) \ | 338 | #define EX_TABLE(_fault,_target) \ |
348 | ".section __ex_table,\"a\"\n" \ | 339 | ".section __ex_table,\"a\"\n" \ |
349 | " .align 4\n" \ | 340 | " .align 4\n" \ |
diff --git a/arch/s390/include/asm/rwsem.h b/arch/s390/include/asm/rwsem.h index d0eb4653cebd..1ceee10264c3 100644 --- a/arch/s390/include/asm/rwsem.h +++ b/arch/s390/include/asm/rwsem.h | |||
@@ -41,19 +41,17 @@ | |||
41 | #error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead" | 41 | #error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead" |
42 | #endif | 42 | #endif |
43 | 43 | ||
44 | #ifdef __KERNEL__ | 44 | #ifndef CONFIG_64BIT |
45 | |||
46 | #ifndef __s390x__ | ||
47 | #define RWSEM_UNLOCKED_VALUE 0x00000000 | 45 | #define RWSEM_UNLOCKED_VALUE 0x00000000 |
48 | #define RWSEM_ACTIVE_BIAS 0x00000001 | 46 | #define RWSEM_ACTIVE_BIAS 0x00000001 |
49 | #define RWSEM_ACTIVE_MASK 0x0000ffff | 47 | #define RWSEM_ACTIVE_MASK 0x0000ffff |
50 | #define RWSEM_WAITING_BIAS (-0x00010000) | 48 | #define RWSEM_WAITING_BIAS (-0x00010000) |
51 | #else /* __s390x__ */ | 49 | #else /* CONFIG_64BIT */ |
52 | #define RWSEM_UNLOCKED_VALUE 0x0000000000000000L | 50 | #define RWSEM_UNLOCKED_VALUE 0x0000000000000000L |
53 | #define RWSEM_ACTIVE_BIAS 0x0000000000000001L | 51 | #define RWSEM_ACTIVE_BIAS 0x0000000000000001L |
54 | #define RWSEM_ACTIVE_MASK 0x00000000ffffffffL | 52 | #define RWSEM_ACTIVE_MASK 0x00000000ffffffffL |
55 | #define RWSEM_WAITING_BIAS (-0x0000000100000000L) | 53 | #define RWSEM_WAITING_BIAS (-0x0000000100000000L) |
56 | #endif /* __s390x__ */ | 54 | #endif /* CONFIG_64BIT */ |
57 | #define RWSEM_ACTIVE_READ_BIAS RWSEM_ACTIVE_BIAS | 55 | #define RWSEM_ACTIVE_READ_BIAS RWSEM_ACTIVE_BIAS |
58 | #define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS) | 56 | #define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS) |
59 | 57 | ||
@@ -65,19 +63,19 @@ static inline void __down_read(struct rw_semaphore *sem) | |||
65 | signed long old, new; | 63 | signed long old, new; |
66 | 64 | ||
67 | asm volatile( | 65 | asm volatile( |
68 | #ifndef __s390x__ | 66 | #ifndef CONFIG_64BIT |
69 | " l %0,%2\n" | 67 | " l %0,%2\n" |
70 | "0: lr %1,%0\n" | 68 | "0: lr %1,%0\n" |
71 | " ahi %1,%4\n" | 69 | " ahi %1,%4\n" |
72 | " cs %0,%1,%2\n" | 70 | " cs %0,%1,%2\n" |
73 | " jl 0b" | 71 | " jl 0b" |
74 | #else /* __s390x__ */ | 72 | #else /* CONFIG_64BIT */ |
75 | " lg %0,%2\n" | 73 | " lg %0,%2\n" |
76 | "0: lgr %1,%0\n" | 74 | "0: lgr %1,%0\n" |
77 | " aghi %1,%4\n" | 75 | " aghi %1,%4\n" |
78 | " csg %0,%1,%2\n" | 76 | " csg %0,%1,%2\n" |
79 | " jl 0b" | 77 | " jl 0b" |
80 | #endif /* __s390x__ */ | 78 | #endif /* CONFIG_64BIT */ |
81 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) | 79 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) |
82 | : "Q" (sem->count), "i" (RWSEM_ACTIVE_READ_BIAS) | 80 | : "Q" (sem->count), "i" (RWSEM_ACTIVE_READ_BIAS) |
83 | : "cc", "memory"); | 81 | : "cc", "memory"); |
@@ -93,7 +91,7 @@ static inline int __down_read_trylock(struct rw_semaphore *sem) | |||
93 | signed long old, new; | 91 | signed long old, new; |
94 | 92 | ||
95 | asm volatile( | 93 | asm volatile( |
96 | #ifndef __s390x__ | 94 | #ifndef CONFIG_64BIT |
97 | " l %0,%2\n" | 95 | " l %0,%2\n" |
98 | "0: ltr %1,%0\n" | 96 | "0: ltr %1,%0\n" |
99 | " jm 1f\n" | 97 | " jm 1f\n" |
@@ -101,7 +99,7 @@ static inline int __down_read_trylock(struct rw_semaphore *sem) | |||
101 | " cs %0,%1,%2\n" | 99 | " cs %0,%1,%2\n" |
102 | " jl 0b\n" | 100 | " jl 0b\n" |
103 | "1:" | 101 | "1:" |
104 | #else /* __s390x__ */ | 102 | #else /* CONFIG_64BIT */ |
105 | " lg %0,%2\n" | 103 | " lg %0,%2\n" |
106 | "0: ltgr %1,%0\n" | 104 | "0: ltgr %1,%0\n" |
107 | " jm 1f\n" | 105 | " jm 1f\n" |
@@ -109,7 +107,7 @@ static inline int __down_read_trylock(struct rw_semaphore *sem) | |||
109 | " csg %0,%1,%2\n" | 107 | " csg %0,%1,%2\n" |
110 | " jl 0b\n" | 108 | " jl 0b\n" |
111 | "1:" | 109 | "1:" |
112 | #endif /* __s390x__ */ | 110 | #endif /* CONFIG_64BIT */ |
113 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) | 111 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) |
114 | : "Q" (sem->count), "i" (RWSEM_ACTIVE_READ_BIAS) | 112 | : "Q" (sem->count), "i" (RWSEM_ACTIVE_READ_BIAS) |
115 | : "cc", "memory"); | 113 | : "cc", "memory"); |
@@ -125,19 +123,19 @@ static inline void __down_write_nested(struct rw_semaphore *sem, int subclass) | |||
125 | 123 | ||
126 | tmp = RWSEM_ACTIVE_WRITE_BIAS; | 124 | tmp = RWSEM_ACTIVE_WRITE_BIAS; |
127 | asm volatile( | 125 | asm volatile( |
128 | #ifndef __s390x__ | 126 | #ifndef CONFIG_64BIT |
129 | " l %0,%2\n" | 127 | " l %0,%2\n" |
130 | "0: lr %1,%0\n" | 128 | "0: lr %1,%0\n" |
131 | " a %1,%4\n" | 129 | " a %1,%4\n" |
132 | " cs %0,%1,%2\n" | 130 | " cs %0,%1,%2\n" |
133 | " jl 0b" | 131 | " jl 0b" |
134 | #else /* __s390x__ */ | 132 | #else /* CONFIG_64BIT */ |
135 | " lg %0,%2\n" | 133 | " lg %0,%2\n" |
136 | "0: lgr %1,%0\n" | 134 | "0: lgr %1,%0\n" |
137 | " ag %1,%4\n" | 135 | " ag %1,%4\n" |
138 | " csg %0,%1,%2\n" | 136 | " csg %0,%1,%2\n" |
139 | " jl 0b" | 137 | " jl 0b" |
140 | #endif /* __s390x__ */ | 138 | #endif /* CONFIG_64BIT */ |
141 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) | 139 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) |
142 | : "Q" (sem->count), "m" (tmp) | 140 | : "Q" (sem->count), "m" (tmp) |
143 | : "cc", "memory"); | 141 | : "cc", "memory"); |
@@ -158,19 +156,19 @@ static inline int __down_write_trylock(struct rw_semaphore *sem) | |||
158 | signed long old; | 156 | signed long old; |
159 | 157 | ||
160 | asm volatile( | 158 | asm volatile( |
161 | #ifndef __s390x__ | 159 | #ifndef CONFIG_64BIT |
162 | " l %0,%1\n" | 160 | " l %0,%1\n" |
163 | "0: ltr %0,%0\n" | 161 | "0: ltr %0,%0\n" |
164 | " jnz 1f\n" | 162 | " jnz 1f\n" |
165 | " cs %0,%3,%1\n" | 163 | " cs %0,%3,%1\n" |
166 | " jl 0b\n" | 164 | " jl 0b\n" |
167 | #else /* __s390x__ */ | 165 | #else /* CONFIG_64BIT */ |
168 | " lg %0,%1\n" | 166 | " lg %0,%1\n" |
169 | "0: ltgr %0,%0\n" | 167 | "0: ltgr %0,%0\n" |
170 | " jnz 1f\n" | 168 | " jnz 1f\n" |
171 | " csg %0,%3,%1\n" | 169 | " csg %0,%3,%1\n" |
172 | " jl 0b\n" | 170 | " jl 0b\n" |
173 | #endif /* __s390x__ */ | 171 | #endif /* CONFIG_64BIT */ |
174 | "1:" | 172 | "1:" |
175 | : "=&d" (old), "=Q" (sem->count) | 173 | : "=&d" (old), "=Q" (sem->count) |
176 | : "Q" (sem->count), "d" (RWSEM_ACTIVE_WRITE_BIAS) | 174 | : "Q" (sem->count), "d" (RWSEM_ACTIVE_WRITE_BIAS) |
@@ -186,19 +184,19 @@ static inline void __up_read(struct rw_semaphore *sem) | |||
186 | signed long old, new; | 184 | signed long old, new; |
187 | 185 | ||
188 | asm volatile( | 186 | asm volatile( |
189 | #ifndef __s390x__ | 187 | #ifndef CONFIG_64BIT |
190 | " l %0,%2\n" | 188 | " l %0,%2\n" |
191 | "0: lr %1,%0\n" | 189 | "0: lr %1,%0\n" |
192 | " ahi %1,%4\n" | 190 | " ahi %1,%4\n" |
193 | " cs %0,%1,%2\n" | 191 | " cs %0,%1,%2\n" |
194 | " jl 0b" | 192 | " jl 0b" |
195 | #else /* __s390x__ */ | 193 | #else /* CONFIG_64BIT */ |
196 | " lg %0,%2\n" | 194 | " lg %0,%2\n" |
197 | "0: lgr %1,%0\n" | 195 | "0: lgr %1,%0\n" |
198 | " aghi %1,%4\n" | 196 | " aghi %1,%4\n" |
199 | " csg %0,%1,%2\n" | 197 | " csg %0,%1,%2\n" |
200 | " jl 0b" | 198 | " jl 0b" |
201 | #endif /* __s390x__ */ | 199 | #endif /* CONFIG_64BIT */ |
202 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) | 200 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) |
203 | : "Q" (sem->count), "i" (-RWSEM_ACTIVE_READ_BIAS) | 201 | : "Q" (sem->count), "i" (-RWSEM_ACTIVE_READ_BIAS) |
204 | : "cc", "memory"); | 202 | : "cc", "memory"); |
@@ -216,19 +214,19 @@ static inline void __up_write(struct rw_semaphore *sem) | |||
216 | 214 | ||
217 | tmp = -RWSEM_ACTIVE_WRITE_BIAS; | 215 | tmp = -RWSEM_ACTIVE_WRITE_BIAS; |
218 | asm volatile( | 216 | asm volatile( |
219 | #ifndef __s390x__ | 217 | #ifndef CONFIG_64BIT |
220 | " l %0,%2\n" | 218 | " l %0,%2\n" |
221 | "0: lr %1,%0\n" | 219 | "0: lr %1,%0\n" |
222 | " a %1,%4\n" | 220 | " a %1,%4\n" |
223 | " cs %0,%1,%2\n" | 221 | " cs %0,%1,%2\n" |
224 | " jl 0b" | 222 | " jl 0b" |
225 | #else /* __s390x__ */ | 223 | #else /* CONFIG_64BIT */ |
226 | " lg %0,%2\n" | 224 | " lg %0,%2\n" |
227 | "0: lgr %1,%0\n" | 225 | "0: lgr %1,%0\n" |
228 | " ag %1,%4\n" | 226 | " ag %1,%4\n" |
229 | " csg %0,%1,%2\n" | 227 | " csg %0,%1,%2\n" |
230 | " jl 0b" | 228 | " jl 0b" |
231 | #endif /* __s390x__ */ | 229 | #endif /* CONFIG_64BIT */ |
232 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) | 230 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) |
233 | : "Q" (sem->count), "m" (tmp) | 231 | : "Q" (sem->count), "m" (tmp) |
234 | : "cc", "memory"); | 232 | : "cc", "memory"); |
@@ -246,19 +244,19 @@ static inline void __downgrade_write(struct rw_semaphore *sem) | |||
246 | 244 | ||
247 | tmp = -RWSEM_WAITING_BIAS; | 245 | tmp = -RWSEM_WAITING_BIAS; |
248 | asm volatile( | 246 | asm volatile( |
249 | #ifndef __s390x__ | 247 | #ifndef CONFIG_64BIT |
250 | " l %0,%2\n" | 248 | " l %0,%2\n" |
251 | "0: lr %1,%0\n" | 249 | "0: lr %1,%0\n" |
252 | " a %1,%4\n" | 250 | " a %1,%4\n" |
253 | " cs %0,%1,%2\n" | 251 | " cs %0,%1,%2\n" |
254 | " jl 0b" | 252 | " jl 0b" |
255 | #else /* __s390x__ */ | 253 | #else /* CONFIG_64BIT */ |
256 | " lg %0,%2\n" | 254 | " lg %0,%2\n" |
257 | "0: lgr %1,%0\n" | 255 | "0: lgr %1,%0\n" |
258 | " ag %1,%4\n" | 256 | " ag %1,%4\n" |
259 | " csg %0,%1,%2\n" | 257 | " csg %0,%1,%2\n" |
260 | " jl 0b" | 258 | " jl 0b" |
261 | #endif /* __s390x__ */ | 259 | #endif /* CONFIG_64BIT */ |
262 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) | 260 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) |
263 | : "Q" (sem->count), "m" (tmp) | 261 | : "Q" (sem->count), "m" (tmp) |
264 | : "cc", "memory"); | 262 | : "cc", "memory"); |
@@ -274,19 +272,19 @@ static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem) | |||
274 | signed long old, new; | 272 | signed long old, new; |
275 | 273 | ||
276 | asm volatile( | 274 | asm volatile( |
277 | #ifndef __s390x__ | 275 | #ifndef CONFIG_64BIT |
278 | " l %0,%2\n" | 276 | " l %0,%2\n" |
279 | "0: lr %1,%0\n" | 277 | "0: lr %1,%0\n" |
280 | " ar %1,%4\n" | 278 | " ar %1,%4\n" |
281 | " cs %0,%1,%2\n" | 279 | " cs %0,%1,%2\n" |
282 | " jl 0b" | 280 | " jl 0b" |
283 | #else /* __s390x__ */ | 281 | #else /* CONFIG_64BIT */ |
284 | " lg %0,%2\n" | 282 | " lg %0,%2\n" |
285 | "0: lgr %1,%0\n" | 283 | "0: lgr %1,%0\n" |
286 | " agr %1,%4\n" | 284 | " agr %1,%4\n" |
287 | " csg %0,%1,%2\n" | 285 | " csg %0,%1,%2\n" |
288 | " jl 0b" | 286 | " jl 0b" |
289 | #endif /* __s390x__ */ | 287 | #endif /* CONFIG_64BIT */ |
290 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) | 288 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) |
291 | : "Q" (sem->count), "d" (delta) | 289 | : "Q" (sem->count), "d" (delta) |
292 | : "cc", "memory"); | 290 | : "cc", "memory"); |
@@ -300,24 +298,23 @@ static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem) | |||
300 | signed long old, new; | 298 | signed long old, new; |
301 | 299 | ||
302 | asm volatile( | 300 | asm volatile( |
303 | #ifndef __s390x__ | 301 | #ifndef CONFIG_64BIT |
304 | " l %0,%2\n" | 302 | " l %0,%2\n" |
305 | "0: lr %1,%0\n" | 303 | "0: lr %1,%0\n" |
306 | " ar %1,%4\n" | 304 | " ar %1,%4\n" |
307 | " cs %0,%1,%2\n" | 305 | " cs %0,%1,%2\n" |
308 | " jl 0b" | 306 | " jl 0b" |
309 | #else /* __s390x__ */ | 307 | #else /* CONFIG_64BIT */ |
310 | " lg %0,%2\n" | 308 | " lg %0,%2\n" |
311 | "0: lgr %1,%0\n" | 309 | "0: lgr %1,%0\n" |
312 | " agr %1,%4\n" | 310 | " agr %1,%4\n" |
313 | " csg %0,%1,%2\n" | 311 | " csg %0,%1,%2\n" |
314 | " jl 0b" | 312 | " jl 0b" |
315 | #endif /* __s390x__ */ | 313 | #endif /* CONFIG_64BIT */ |
316 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) | 314 | : "=&d" (old), "=&d" (new), "=Q" (sem->count) |
317 | : "Q" (sem->count), "d" (delta) | 315 | : "Q" (sem->count), "d" (delta) |
318 | : "cc", "memory"); | 316 | : "cc", "memory"); |
319 | return new; | 317 | return new; |
320 | } | 318 | } |
321 | 319 | ||
322 | #endif /* __KERNEL__ */ | ||
323 | #endif /* _S390_RWSEM_H */ | 320 | #endif /* _S390_RWSEM_H */ |
diff --git a/arch/s390/include/asm/setup.h b/arch/s390/include/asm/setup.h index 7244e1f64126..40eb2ff88e9e 100644 --- a/arch/s390/include/asm/setup.h +++ b/arch/s390/include/asm/setup.h | |||
@@ -22,19 +22,19 @@ | |||
22 | #include <asm/lowcore.h> | 22 | #include <asm/lowcore.h> |
23 | #include <asm/types.h> | 23 | #include <asm/types.h> |
24 | 24 | ||
25 | #ifndef __s390x__ | 25 | #ifndef CONFIG_64BIT |
26 | #define IPL_DEVICE (*(unsigned long *) (0x10404)) | 26 | #define IPL_DEVICE (*(unsigned long *) (0x10404)) |
27 | #define INITRD_START (*(unsigned long *) (0x1040C)) | 27 | #define INITRD_START (*(unsigned long *) (0x1040C)) |
28 | #define INITRD_SIZE (*(unsigned long *) (0x10414)) | 28 | #define INITRD_SIZE (*(unsigned long *) (0x10414)) |
29 | #define OLDMEM_BASE (*(unsigned long *) (0x1041C)) | 29 | #define OLDMEM_BASE (*(unsigned long *) (0x1041C)) |
30 | #define OLDMEM_SIZE (*(unsigned long *) (0x10424)) | 30 | #define OLDMEM_SIZE (*(unsigned long *) (0x10424)) |
31 | #else /* __s390x__ */ | 31 | #else /* CONFIG_64BIT */ |
32 | #define IPL_DEVICE (*(unsigned long *) (0x10400)) | 32 | #define IPL_DEVICE (*(unsigned long *) (0x10400)) |
33 | #define INITRD_START (*(unsigned long *) (0x10408)) | 33 | #define INITRD_START (*(unsigned long *) (0x10408)) |
34 | #define INITRD_SIZE (*(unsigned long *) (0x10410)) | 34 | #define INITRD_SIZE (*(unsigned long *) (0x10410)) |
35 | #define OLDMEM_BASE (*(unsigned long *) (0x10418)) | 35 | #define OLDMEM_BASE (*(unsigned long *) (0x10418)) |
36 | #define OLDMEM_SIZE (*(unsigned long *) (0x10420)) | 36 | #define OLDMEM_SIZE (*(unsigned long *) (0x10420)) |
37 | #endif /* __s390x__ */ | 37 | #endif /* CONFIG_64BIT */ |
38 | #define COMMAND_LINE ((char *) (0x10480)) | 38 | #define COMMAND_LINE ((char *) (0x10480)) |
39 | 39 | ||
40 | #define CHUNK_READ_WRITE 0 | 40 | #define CHUNK_READ_WRITE 0 |
@@ -89,7 +89,7 @@ extern unsigned int user_mode; | |||
89 | 89 | ||
90 | #define MACHINE_HAS_DIAG9C (S390_lowcore.machine_flags & MACHINE_FLAG_DIAG9C) | 90 | #define MACHINE_HAS_DIAG9C (S390_lowcore.machine_flags & MACHINE_FLAG_DIAG9C) |
91 | 91 | ||
92 | #ifndef __s390x__ | 92 | #ifndef CONFIG_64BIT |
93 | #define MACHINE_HAS_IEEE (S390_lowcore.machine_flags & MACHINE_FLAG_IEEE) | 93 | #define MACHINE_HAS_IEEE (S390_lowcore.machine_flags & MACHINE_FLAG_IEEE) |
94 | #define MACHINE_HAS_CSP (S390_lowcore.machine_flags & MACHINE_FLAG_CSP) | 94 | #define MACHINE_HAS_CSP (S390_lowcore.machine_flags & MACHINE_FLAG_CSP) |
95 | #define MACHINE_HAS_IDTE (0) | 95 | #define MACHINE_HAS_IDTE (0) |
@@ -100,7 +100,7 @@ extern unsigned int user_mode; | |||
100 | #define MACHINE_HAS_PFMF (0) | 100 | #define MACHINE_HAS_PFMF (0) |
101 | #define MACHINE_HAS_SPP (0) | 101 | #define MACHINE_HAS_SPP (0) |
102 | #define MACHINE_HAS_TOPOLOGY (0) | 102 | #define MACHINE_HAS_TOPOLOGY (0) |
103 | #else /* __s390x__ */ | 103 | #else /* CONFIG_64BIT */ |
104 | #define MACHINE_HAS_IEEE (1) | 104 | #define MACHINE_HAS_IEEE (1) |
105 | #define MACHINE_HAS_CSP (1) | 105 | #define MACHINE_HAS_CSP (1) |
106 | #define MACHINE_HAS_IDTE (S390_lowcore.machine_flags & MACHINE_FLAG_IDTE) | 106 | #define MACHINE_HAS_IDTE (S390_lowcore.machine_flags & MACHINE_FLAG_IDTE) |
@@ -111,7 +111,7 @@ extern unsigned int user_mode; | |||
111 | #define MACHINE_HAS_PFMF (S390_lowcore.machine_flags & MACHINE_FLAG_PFMF) | 111 | #define MACHINE_HAS_PFMF (S390_lowcore.machine_flags & MACHINE_FLAG_PFMF) |
112 | #define MACHINE_HAS_SPP (S390_lowcore.machine_flags & MACHINE_FLAG_SPP) | 112 | #define MACHINE_HAS_SPP (S390_lowcore.machine_flags & MACHINE_FLAG_SPP) |
113 | #define MACHINE_HAS_TOPOLOGY (S390_lowcore.machine_flags & MACHINE_FLAG_TOPOLOGY) | 113 | #define MACHINE_HAS_TOPOLOGY (S390_lowcore.machine_flags & MACHINE_FLAG_TOPOLOGY) |
114 | #endif /* __s390x__ */ | 114 | #endif /* CONFIG_64BIT */ |
115 | 115 | ||
116 | #define ZFCPDUMP_HSA_SIZE (32UL<<20) | 116 | #define ZFCPDUMP_HSA_SIZE (32UL<<20) |
117 | #define ZFCPDUMP_HSA_SIZE_MAX (64UL<<20) | 117 | #define ZFCPDUMP_HSA_SIZE_MAX (64UL<<20) |
@@ -153,19 +153,19 @@ extern void (*_machine_power_off)(void); | |||
153 | 153 | ||
154 | #else /* __ASSEMBLY__ */ | 154 | #else /* __ASSEMBLY__ */ |
155 | 155 | ||
156 | #ifndef __s390x__ | 156 | #ifndef CONFIG_64BIT |
157 | #define IPL_DEVICE 0x10404 | 157 | #define IPL_DEVICE 0x10404 |
158 | #define INITRD_START 0x1040C | 158 | #define INITRD_START 0x1040C |
159 | #define INITRD_SIZE 0x10414 | 159 | #define INITRD_SIZE 0x10414 |
160 | #define OLDMEM_BASE 0x1041C | 160 | #define OLDMEM_BASE 0x1041C |
161 | #define OLDMEM_SIZE 0x10424 | 161 | #define OLDMEM_SIZE 0x10424 |
162 | #else /* __s390x__ */ | 162 | #else /* CONFIG_64BIT */ |
163 | #define IPL_DEVICE 0x10400 | 163 | #define IPL_DEVICE 0x10400 |
164 | #define INITRD_START 0x10408 | 164 | #define INITRD_START 0x10408 |
165 | #define INITRD_SIZE 0x10410 | 165 | #define INITRD_SIZE 0x10410 |
166 | #define OLDMEM_BASE 0x10418 | 166 | #define OLDMEM_BASE 0x10418 |
167 | #define OLDMEM_SIZE 0x10420 | 167 | #define OLDMEM_SIZE 0x10420 |
168 | #endif /* __s390x__ */ | 168 | #endif /* CONFIG_64BIT */ |
169 | #define COMMAND_LINE 0x10480 | 169 | #define COMMAND_LINE 0x10480 |
170 | 170 | ||
171 | #endif /* __ASSEMBLY__ */ | 171 | #endif /* __ASSEMBLY__ */ |
diff --git a/arch/s390/include/asm/sfp-util.h b/arch/s390/include/asm/sfp-util.h index ca3f8814e361..5959bfb3b693 100644 --- a/arch/s390/include/asm/sfp-util.h +++ b/arch/s390/include/asm/sfp-util.h | |||
@@ -51,7 +51,7 @@ | |||
51 | wl = __wl; \ | 51 | wl = __wl; \ |
52 | }) | 52 | }) |
53 | 53 | ||
54 | #ifdef __s390x__ | 54 | #ifdef CONFIG_64BIT |
55 | #define udiv_qrnnd(q, r, n1, n0, d) \ | 55 | #define udiv_qrnnd(q, r, n1, n0, d) \ |
56 | do { unsigned long __n; \ | 56 | do { unsigned long __n; \ |
57 | unsigned int __r, __d; \ | 57 | unsigned int __r, __d; \ |
diff --git a/arch/s390/include/asm/string.h b/arch/s390/include/asm/string.h index cd0241db5a46..8cc160c9e1cb 100644 --- a/arch/s390/include/asm/string.h +++ b/arch/s390/include/asm/string.h | |||
@@ -9,8 +9,6 @@ | |||
9 | #ifndef _S390_STRING_H_ | 9 | #ifndef _S390_STRING_H_ |
10 | #define _S390_STRING_H_ | 10 | #define _S390_STRING_H_ |
11 | 11 | ||
12 | #ifdef __KERNEL__ | ||
13 | |||
14 | #ifndef _LINUX_TYPES_H | 12 | #ifndef _LINUX_TYPES_H |
15 | #include <linux/types.h> | 13 | #include <linux/types.h> |
16 | #endif | 14 | #endif |
@@ -152,6 +150,4 @@ size_t strlen(const char *s); | |||
152 | size_t strnlen(const char * s, size_t n); | 150 | size_t strnlen(const char * s, size_t n); |
153 | #endif /* !IN_ARCH_STRING_C */ | 151 | #endif /* !IN_ARCH_STRING_C */ |
154 | 152 | ||
155 | #endif /* __KERNEL__ */ | ||
156 | |||
157 | #endif /* __S390_STRING_H_ */ | 153 | #endif /* __S390_STRING_H_ */ |
diff --git a/arch/s390/include/asm/thread_info.h b/arch/s390/include/asm/thread_info.h index 003b04edcff6..4e40b25cd060 100644 --- a/arch/s390/include/asm/thread_info.h +++ b/arch/s390/include/asm/thread_info.h | |||
@@ -9,15 +9,13 @@ | |||
9 | #ifndef _ASM_THREAD_INFO_H | 9 | #ifndef _ASM_THREAD_INFO_H |
10 | #define _ASM_THREAD_INFO_H | 10 | #define _ASM_THREAD_INFO_H |
11 | 11 | ||
12 | #ifdef __KERNEL__ | ||
13 | |||
14 | /* | 12 | /* |
15 | * Size of kernel stack for each process | 13 | * Size of kernel stack for each process |
16 | */ | 14 | */ |
17 | #ifndef __s390x__ | 15 | #ifndef CONFIG_64BIT |
18 | #define THREAD_ORDER 1 | 16 | #define THREAD_ORDER 1 |
19 | #define ASYNC_ORDER 1 | 17 | #define ASYNC_ORDER 1 |
20 | #else /* __s390x__ */ | 18 | #else /* CONFIG_64BIT */ |
21 | #ifndef __SMALL_STACK | 19 | #ifndef __SMALL_STACK |
22 | #define THREAD_ORDER 2 | 20 | #define THREAD_ORDER 2 |
23 | #define ASYNC_ORDER 2 | 21 | #define ASYNC_ORDER 2 |
@@ -25,7 +23,7 @@ | |||
25 | #define THREAD_ORDER 1 | 23 | #define THREAD_ORDER 1 |
26 | #define ASYNC_ORDER 1 | 24 | #define ASYNC_ORDER 1 |
27 | #endif | 25 | #endif |
28 | #endif /* __s390x__ */ | 26 | #endif /* CONFIG_64BIT */ |
29 | 27 | ||
30 | #define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER) | 28 | #define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER) |
31 | #define ASYNC_SIZE (PAGE_SIZE << ASYNC_ORDER) | 29 | #define ASYNC_SIZE (PAGE_SIZE << ASYNC_ORDER) |
@@ -123,8 +121,6 @@ static inline struct thread_info *current_thread_info(void) | |||
123 | #define is_32bit_task() (1) | 121 | #define is_32bit_task() (1) |
124 | #endif | 122 | #endif |
125 | 123 | ||
126 | #endif /* __KERNEL__ */ | ||
127 | |||
128 | #define PREEMPT_ACTIVE 0x4000000 | 124 | #define PREEMPT_ACTIVE 0x4000000 |
129 | 125 | ||
130 | #endif /* _ASM_THREAD_INFO_H */ | 126 | #endif /* _ASM_THREAD_INFO_H */ |
diff --git a/arch/s390/include/asm/timer.h b/arch/s390/include/asm/timer.h index e63069ba39e3..15d647901e5c 100644 --- a/arch/s390/include/asm/timer.h +++ b/arch/s390/include/asm/timer.h | |||
@@ -10,8 +10,6 @@ | |||
10 | #ifndef _ASM_S390_TIMER_H | 10 | #ifndef _ASM_S390_TIMER_H |
11 | #define _ASM_S390_TIMER_H | 11 | #define _ASM_S390_TIMER_H |
12 | 12 | ||
13 | #ifdef __KERNEL__ | ||
14 | |||
15 | #include <linux/timer.h> | 13 | #include <linux/timer.h> |
16 | 14 | ||
17 | #define VTIMER_MAX_SLICE (0x7ffffffffffff000LL) | 15 | #define VTIMER_MAX_SLICE (0x7ffffffffffff000LL) |
@@ -50,6 +48,4 @@ extern void vtime_init(void); | |||
50 | extern void vtime_stop_cpu(void); | 48 | extern void vtime_stop_cpu(void); |
51 | extern void vtime_start_leave(void); | 49 | extern void vtime_start_leave(void); |
52 | 50 | ||
53 | #endif /* __KERNEL__ */ | ||
54 | |||
55 | #endif /* _ASM_S390_TIMER_H */ | 51 | #endif /* _ASM_S390_TIMER_H */ |
diff --git a/arch/s390/include/asm/tlb.h b/arch/s390/include/asm/tlb.h index 775a5eea8f9e..06e5acbc84bd 100644 --- a/arch/s390/include/asm/tlb.h +++ b/arch/s390/include/asm/tlb.h | |||
@@ -106,7 +106,7 @@ static inline void pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, | |||
106 | static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, | 106 | static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, |
107 | unsigned long address) | 107 | unsigned long address) |
108 | { | 108 | { |
109 | #ifdef __s390x__ | 109 | #ifdef CONFIG_64BIT |
110 | if (tlb->mm->context.asce_limit <= (1UL << 31)) | 110 | if (tlb->mm->context.asce_limit <= (1UL << 31)) |
111 | return; | 111 | return; |
112 | if (!tlb->fullmm) | 112 | if (!tlb->fullmm) |
@@ -125,7 +125,7 @@ static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, | |||
125 | static inline void pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, | 125 | static inline void pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, |
126 | unsigned long address) | 126 | unsigned long address) |
127 | { | 127 | { |
128 | #ifdef __s390x__ | 128 | #ifdef CONFIG_64BIT |
129 | if (tlb->mm->context.asce_limit <= (1UL << 42)) | 129 | if (tlb->mm->context.asce_limit <= (1UL << 42)) |
130 | return; | 130 | return; |
131 | if (!tlb->fullmm) | 131 | if (!tlb->fullmm) |
diff --git a/arch/s390/include/asm/tlbflush.h b/arch/s390/include/asm/tlbflush.h index 1d8648cf2fea..9fde315f3a7c 100644 --- a/arch/s390/include/asm/tlbflush.h +++ b/arch/s390/include/asm/tlbflush.h | |||
@@ -27,12 +27,12 @@ static inline void __tlb_flush_global(void) | |||
27 | register unsigned long reg4 asm("4"); | 27 | register unsigned long reg4 asm("4"); |
28 | long dummy; | 28 | long dummy; |
29 | 29 | ||
30 | #ifndef __s390x__ | 30 | #ifndef CONFIG_64BIT |
31 | if (!MACHINE_HAS_CSP) { | 31 | if (!MACHINE_HAS_CSP) { |
32 | smp_ptlb_all(); | 32 | smp_ptlb_all(); |
33 | return; | 33 | return; |
34 | } | 34 | } |
35 | #endif /* __s390x__ */ | 35 | #endif /* CONFIG_64BIT */ |
36 | 36 | ||
37 | dummy = 0; | 37 | dummy = 0; |
38 | reg2 = reg3 = 0; | 38 | reg2 = reg3 = 0; |
diff --git a/arch/s390/include/asm/types.h b/arch/s390/include/asm/types.h index 05ebbcdbbf6b..6c8c35f8df14 100644 --- a/arch/s390/include/asm/types.h +++ b/arch/s390/include/asm/types.h | |||
@@ -28,7 +28,7 @@ typedef __signed__ long saddr_t; | |||
28 | 28 | ||
29 | #ifndef __ASSEMBLY__ | 29 | #ifndef __ASSEMBLY__ |
30 | 30 | ||
31 | #ifndef __s390x__ | 31 | #ifndef CONFIG_64BIT |
32 | typedef union { | 32 | typedef union { |
33 | unsigned long long pair; | 33 | unsigned long long pair; |
34 | struct { | 34 | struct { |
@@ -37,7 +37,7 @@ typedef union { | |||
37 | } subreg; | 37 | } subreg; |
38 | } register_pair; | 38 | } register_pair; |
39 | 39 | ||
40 | #endif /* ! __s390x__ */ | 40 | #endif /* ! CONFIG_64BIT */ |
41 | #endif /* __ASSEMBLY__ */ | 41 | #endif /* __ASSEMBLY__ */ |
42 | #endif /* __KERNEL__ */ | 42 | #endif /* __KERNEL__ */ |
43 | #endif /* _S390_TYPES_H */ | 43 | #endif /* _S390_TYPES_H */ |
diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h index 8f2cada4f7c9..1f3a79bcd262 100644 --- a/arch/s390/include/asm/uaccess.h +++ b/arch/s390/include/asm/uaccess.h | |||
@@ -50,10 +50,15 @@ | |||
50 | 50 | ||
51 | #define segment_eq(a,b) ((a).ar4 == (b).ar4) | 51 | #define segment_eq(a,b) ((a).ar4 == (b).ar4) |
52 | 52 | ||
53 | #define __access_ok(addr, size) \ | 53 | static inline int __range_ok(unsigned long addr, unsigned long size) |
54 | ({ \ | 54 | { |
55 | __chk_user_ptr(addr); \ | 55 | return 1; |
56 | 1; \ | 56 | } |
57 | |||
58 | #define __access_ok(addr, size) \ | ||
59 | ({ \ | ||
60 | __chk_user_ptr(addr); \ | ||
61 | __range_ok((unsigned long)(addr), (size)); \ | ||
57 | }) | 62 | }) |
58 | 63 | ||
59 | #define access_ok(type, addr, size) __access_ok(addr, size) | 64 | #define access_ok(type, addr, size) __access_ok(addr, size) |
@@ -377,7 +382,7 @@ clear_user(void __user *to, unsigned long n) | |||
377 | } | 382 | } |
378 | 383 | ||
379 | extern int memcpy_real(void *, void *, size_t); | 384 | extern int memcpy_real(void *, void *, size_t); |
380 | extern void copy_to_absolute_zero(void *dest, void *src, size_t count); | 385 | extern void memcpy_absolute(void *, void *, size_t); |
381 | extern int copy_to_user_real(void __user *dest, void *src, size_t count); | 386 | extern int copy_to_user_real(void __user *dest, void *src, size_t count); |
382 | extern int copy_from_user_real(void *dest, void __user *src, size_t count); | 387 | extern int copy_from_user_real(void *dest, void __user *src, size_t count); |
383 | 388 | ||
diff --git a/arch/s390/include/asm/vdso.h b/arch/s390/include/asm/vdso.h index c4a11cfad3c8..a73eb2e1e918 100644 --- a/arch/s390/include/asm/vdso.h +++ b/arch/s390/include/asm/vdso.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef __S390_VDSO_H__ | 1 | #ifndef __S390_VDSO_H__ |
2 | #define __S390_VDSO_H__ | 2 | #define __S390_VDSO_H__ |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | |||
6 | /* Default link addresses for the vDSOs */ | 4 | /* Default link addresses for the vDSOs */ |
7 | #define VDSO32_LBASE 0 | 5 | #define VDSO32_LBASE 0 |
8 | #define VDSO64_LBASE 0 | 6 | #define VDSO64_LBASE 0 |
@@ -45,7 +43,4 @@ void vdso_free_per_cpu(struct _lowcore *lowcore); | |||
45 | #endif | 43 | #endif |
46 | 44 | ||
47 | #endif /* __ASSEMBLY__ */ | 45 | #endif /* __ASSEMBLY__ */ |
48 | |||
49 | #endif /* __KERNEL__ */ | ||
50 | |||
51 | #endif /* __S390_VDSO_H__ */ | 46 | #endif /* __S390_VDSO_H__ */ |