aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/mm/extmem.c
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2015-02-12 07:08:27 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2015-03-25 06:49:33 -0400
commit5a79859ae0f35d25c67a03e82bf0c80592f16a39 (patch)
tree37264d49f069812f19ced94e6ae171814fb7e498 /arch/s390/mm/extmem.c
parent1833c9f647e9bda1cd24653ff8f9c207b5f5b911 (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.c14
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
55struct qrange_old { 54struct 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
70struct qin64 { 68struct qin64 {
71 char qopcode; 69 char qopcode;
@@ -103,7 +101,6 @@ static int scode_set;
103static int 101static int
104dcss_set_subcodes(void) 102dcss_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;