diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2015-02-12 07:08:27 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2015-03-25 06:49:33 -0400 |
commit | 5a79859ae0f35d25c67a03e82bf0c80592f16a39 (patch) | |
tree | 37264d49f069812f19ced94e6ae171814fb7e498 /arch/s390/mm/extmem.c | |
parent | 1833c9f647e9bda1cd24653ff8f9c207b5f5b911 (diff) |
s390: remove 31 bit support
Remove the 31 bit support in order to reduce maintenance cost and
effectively remove dead code. Since a couple of years there is no
distribution left that comes with a 31 bit kernel.
The 31 bit kernel also has been broken since more than a year before
anybody noticed. In addition I added a removal warning to the kernel
shown at ipl for 5 minutes: a960062e5826 ("s390: add 31 bit warning
message") which let everybody know about the plan to remove 31 bit
code. We didn't get any response.
Given that the last 31 bit only machine was introduced in 1999 let's
remove the code.
Anybody with 31 bit user space code can still use the compat mode.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/mm/extmem.c')
-rw-r--r-- | arch/s390/mm/extmem.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/arch/s390/mm/extmem.c b/arch/s390/mm/extmem.c index 519bba716cc3..23c496957c22 100644 --- a/arch/s390/mm/extmem.c +++ b/arch/s390/mm/extmem.c | |||
@@ -51,7 +51,6 @@ struct qout64 { | |||
51 | struct qrange range[6]; | 51 | struct qrange range[6]; |
52 | }; | 52 | }; |
53 | 53 | ||
54 | #ifdef CONFIG_64BIT | ||
55 | struct qrange_old { | 54 | struct qrange_old { |
56 | unsigned int start; /* last byte type */ | 55 | unsigned int start; /* last byte type */ |
57 | unsigned int end; /* last byte reserved */ | 56 | unsigned int end; /* last byte reserved */ |
@@ -65,7 +64,6 @@ struct qout64_old { | |||
65 | int segrcnt; | 64 | int segrcnt; |
66 | struct qrange_old range[6]; | 65 | struct qrange_old range[6]; |
67 | }; | 66 | }; |
68 | #endif | ||
69 | 67 | ||
70 | struct qin64 { | 68 | struct qin64 { |
71 | char qopcode; | 69 | char qopcode; |
@@ -103,7 +101,6 @@ static int scode_set; | |||
103 | static int | 101 | static int |
104 | dcss_set_subcodes(void) | 102 | dcss_set_subcodes(void) |
105 | { | 103 | { |
106 | #ifdef CONFIG_64BIT | ||
107 | char *name = kmalloc(8 * sizeof(char), GFP_KERNEL | GFP_DMA); | 104 | char *name = kmalloc(8 * sizeof(char), GFP_KERNEL | GFP_DMA); |
108 | unsigned long rx, ry; | 105 | unsigned long rx, ry; |
109 | int rc; | 106 | int rc; |
@@ -135,7 +132,6 @@ dcss_set_subcodes(void) | |||
135 | segext_scode = DCSS_SEGEXTX; | 132 | segext_scode = DCSS_SEGEXTX; |
136 | return 0; | 133 | return 0; |
137 | } | 134 | } |
138 | #endif | ||
139 | /* Diag x'64' new subcodes are not supported, set to old subcodes */ | 135 | /* Diag x'64' new subcodes are not supported, set to old subcodes */ |
140 | loadshr_scode = DCSS_LOADNOLY; | 136 | loadshr_scode = DCSS_LOADNOLY; |
141 | loadnsr_scode = DCSS_LOADNSR; | 137 | loadnsr_scode = DCSS_LOADNSR; |
@@ -208,7 +204,6 @@ dcss_diag(int *func, void *parameter, | |||
208 | rx = (unsigned long) parameter; | 204 | rx = (unsigned long) parameter; |
209 | ry = (unsigned long) *func; | 205 | ry = (unsigned long) *func; |
210 | 206 | ||
211 | #ifdef CONFIG_64BIT | ||
212 | /* 64-bit Diag x'64' new subcode, keep in 64-bit addressing mode */ | 207 | /* 64-bit Diag x'64' new subcode, keep in 64-bit addressing mode */ |
213 | if (*func > DCSS_SEGEXT) | 208 | if (*func > DCSS_SEGEXT) |
214 | asm volatile( | 209 | asm volatile( |
@@ -225,13 +220,6 @@ dcss_diag(int *func, void *parameter, | |||
225 | " ipm %2\n" | 220 | " ipm %2\n" |
226 | " srl %2,28\n" | 221 | " srl %2,28\n" |
227 | : "+d" (rx), "+d" (ry), "=d" (rc) : : "cc"); | 222 | : "+d" (rx), "+d" (ry), "=d" (rc) : : "cc"); |
228 | #else | ||
229 | asm volatile( | ||
230 | " diag %0,%1,0x64\n" | ||
231 | " ipm %2\n" | ||
232 | " srl %2,28\n" | ||
233 | : "+d" (rx), "+d" (ry), "=d" (rc) : : "cc"); | ||
234 | #endif | ||
235 | *ret1 = rx; | 223 | *ret1 = rx; |
236 | *ret2 = ry; | 224 | *ret2 = ry; |
237 | return rc; | 225 | return rc; |
@@ -281,7 +269,6 @@ query_segment_type (struct dcss_segment *seg) | |||
281 | goto out_free; | 269 | goto out_free; |
282 | } | 270 | } |
283 | 271 | ||
284 | #ifdef CONFIG_64BIT | ||
285 | /* Only old format of output area of Diagnose x'64' is supported, | 272 | /* Only old format of output area of Diagnose x'64' is supported, |
286 | copy data for the new format. */ | 273 | copy data for the new format. */ |
287 | if (segext_scode == DCSS_SEGEXT) { | 274 | if (segext_scode == DCSS_SEGEXT) { |
@@ -307,7 +294,6 @@ query_segment_type (struct dcss_segment *seg) | |||
307 | } | 294 | } |
308 | kfree(qout_old); | 295 | kfree(qout_old); |
309 | } | 296 | } |
310 | #endif | ||
311 | if (qout->segcnt > 6) { | 297 | if (qout->segcnt > 6) { |
312 | rc = -EOPNOTSUPP; | 298 | rc = -EOPNOTSUPP; |
313 | goto out_free; | 299 | goto out_free; |