aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/mm/fault.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/fault.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/fault.c')
-rw-r--r--arch/s390/mm/fault.c36
1 files changed, 0 insertions, 36 deletions
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 3ff86533f7db..76515bcea2f1 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -36,15 +36,9 @@
36#include <asm/facility.h> 36#include <asm/facility.h>
37#include "../kernel/entry.h" 37#include "../kernel/entry.h"
38 38
39#ifndef CONFIG_64BIT
40#define __FAIL_ADDR_MASK 0x7ffff000
41#define __SUBCODE_MASK 0x0200
42#define __PF_RES_FIELD 0ULL
43#else /* CONFIG_64BIT */
44#define __FAIL_ADDR_MASK -4096L 39#define __FAIL_ADDR_MASK -4096L
45#define __SUBCODE_MASK 0x0600 40#define __SUBCODE_MASK 0x0600
46#define __PF_RES_FIELD 0x8000000000000000ULL 41#define __PF_RES_FIELD 0x8000000000000000ULL
47#endif /* CONFIG_64BIT */
48 42
49#define VM_FAULT_BADCONTEXT 0x010000 43#define VM_FAULT_BADCONTEXT 0x010000
50#define VM_FAULT_BADMAP 0x020000 44#define VM_FAULT_BADMAP 0x020000
@@ -54,7 +48,6 @@
54 48
55static unsigned long store_indication __read_mostly; 49static unsigned long store_indication __read_mostly;
56 50
57#ifdef CONFIG_64BIT
58static int __init fault_init(void) 51static int __init fault_init(void)
59{ 52{
60 if (test_facility(75)) 53 if (test_facility(75))
@@ -62,7 +55,6 @@ static int __init fault_init(void)
62 return 0; 55 return 0;
63} 56}
64early_initcall(fault_init); 57early_initcall(fault_init);
65#endif
66 58
67static inline int notify_page_fault(struct pt_regs *regs) 59static inline int notify_page_fault(struct pt_regs *regs)
68{ 60{
@@ -133,7 +125,6 @@ static int bad_address(void *p)
133 return probe_kernel_address((unsigned long *)p, dummy); 125 return probe_kernel_address((unsigned long *)p, dummy);
134} 126}
135 127
136#ifdef CONFIG_64BIT
137static void dump_pagetable(unsigned long asce, unsigned long address) 128static void dump_pagetable(unsigned long asce, unsigned long address)
138{ 129{
139 unsigned long *table = __va(asce & PAGE_MASK); 130 unsigned long *table = __va(asce & PAGE_MASK);
@@ -187,33 +178,6 @@ bad:
187 pr_cont("BAD\n"); 178 pr_cont("BAD\n");
188} 179}
189 180
190#else /* CONFIG_64BIT */
191
192static void dump_pagetable(unsigned long asce, unsigned long address)
193{
194 unsigned long *table = __va(asce & PAGE_MASK);
195
196 pr_alert("AS:%08lx ", asce);
197 table = table + ((address >> 20) & 0x7ff);
198 if (bad_address(table))
199 goto bad;
200 pr_cont("S:%08lx ", *table);
201 if (*table & _SEGMENT_ENTRY_INVALID)
202 goto out;
203 table = (unsigned long *)(*table & _SEGMENT_ENTRY_ORIGIN);
204 table = table + ((address >> 12) & 0xff);
205 if (bad_address(table))
206 goto bad;
207 pr_cont("P:%08lx ", *table);
208out:
209 pr_cont("\n");
210 return;
211bad:
212 pr_cont("BAD\n");
213}
214
215#endif /* CONFIG_64BIT */
216
217static void dump_fault_info(struct pt_regs *regs) 181static void dump_fault_info(struct pt_regs *regs)
218{ 182{
219 unsigned long asce; 183 unsigned long asce;