aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m32r/mm/fault-nommu.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2018-03-07 15:36:19 -0500
committerArnd Bergmann <arnd@arndb.de>2018-03-09 17:20:00 -0500
commit553b085c2075f6a4a2591108554f830fa61e881f (patch)
tree68d63911f2c12e0fb9fa23498df9300442a88f92 /arch/m32r/mm/fault-nommu.c
parentfd8773f9f544955f6f47dc2ac3ab85ad64376b7f (diff)
arch: remove m32r port
The Mitsubishi/Renesas m32r architecture has been around for many years, but the Linux port has been obsolete for a very long time as well, with the last significant updates done for linux-2.6.14. While some m32r microcontrollers are still being marketed by Renesas, those are apparently no longer possible to support, mainly due to the lack of an external memory interface. Hirokazu Takata was the maintainer until the architecture got marked Orphaned in 2014. Link: http://www.linux-m32r.org/ Link: https://www.renesas.com/en-eu/products/microcontrollers-microprocessors/m32r.html Cc: Hirokazu Takata <takata@linux-m32r.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/m32r/mm/fault-nommu.c')
-rw-r--r--arch/m32r/mm/fault-nommu.c134
1 files changed, 0 insertions, 134 deletions
diff --git a/arch/m32r/mm/fault-nommu.c b/arch/m32r/mm/fault-nommu.c
deleted file mode 100644
index 240e00067d5e..000000000000
--- a/arch/m32r/mm/fault-nommu.c
+++ /dev/null
@@ -1,134 +0,0 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * linux/arch/m32r/mm/fault.c
4 *
5 * Copyright (c) 2001, 2002 Hitoshi Yamamoto, and H. Kondo
6 *
7 * Some code taken from i386 version.
8 * Copyright (C) 1995 Linus Torvalds
9 */
10
11#include <linux/signal.h>
12#include <linux/sched.h>
13#include <linux/kernel.h>
14#include <linux/errno.h>
15#include <linux/string.h>
16#include <linux/types.h>
17#include <linux/ptrace.h>
18#include <linux/mman.h>
19#include <linux/mm.h>
20#include <linux/smp.h>
21#include <linux/interrupt.h>
22#include <linux/init.h>
23#include <linux/vt_kern.h> /* For unblank_screen() */
24
25#include <asm/m32r.h>
26#include <linux/uaccess.h>
27#include <asm/pgalloc.h>
28#include <asm/pgtable.h>
29#include <asm/hardirq.h>
30#include <asm/mmu_context.h>
31
32extern void die(const char *, struct pt_regs *, long);
33
34#ifndef CONFIG_SMP
35asmlinkage unsigned int tlb_entry_i_dat;
36asmlinkage unsigned int tlb_entry_d_dat;
37#define tlb_entry_i tlb_entry_i_dat
38#define tlb_entry_d tlb_entry_d_dat
39#else
40unsigned int tlb_entry_i_dat[NR_CPUS];
41unsigned int tlb_entry_d_dat[NR_CPUS];
42#define tlb_entry_i tlb_entry_i_dat[smp_processor_id()]
43#define tlb_entry_d tlb_entry_d_dat[smp_processor_id()]
44#endif
45
46void do_BUG(const char *file, int line)
47{
48 bust_spinlocks(1);
49 printk("kernel BUG at %s:%d!\n", file, line);
50}
51
52/*======================================================================*
53 * do_page_fault()
54 *======================================================================*
55 * This routine handles page faults. It determines the address,
56 * and the problem, and then passes it off to one of the appropriate
57 * routines.
58 *
59 * ARGUMENT:
60 * regs : M32R SP reg.
61 * error_code : See below
62 * address : M32R MMU MDEVA reg. (Operand ACE)
63 * : M32R BPC reg. (Instruction ACE)
64 *
65 * error_code :
66 * bit 0 == 0 means no page found, 1 means protection fault
67 * bit 1 == 0 means read, 1 means write
68 * bit 2 == 0 means kernel, 1 means user-mode
69 *======================================================================*/
70asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code,
71 unsigned long address)
72{
73
74/*
75 * Oops. The kernel tried to access some bad page. We'll have to
76 * terminate things with extreme prejudice.
77 */
78
79 bust_spinlocks(1);
80
81 if (address < PAGE_SIZE)
82 printk(KERN_ALERT "Unable to handle kernel NULL pointer dereference");
83 else
84 printk(KERN_ALERT "Unable to handle kernel paging request");
85 printk(" at virtual address %08lx\n",address);
86 printk(" printing bpc:\n");
87 printk(KERN_ALERT "bpc = %08lx\n", regs->bpc);
88
89 die("Oops", regs, error_code);
90 bust_spinlocks(0);
91 do_exit(SIGKILL);
92}
93
94/*======================================================================*
95 * update_mmu_cache()
96 *======================================================================*/
97void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr,
98 pte_t *ptep)
99{
100 BUG();
101}
102
103/*======================================================================*
104 * flush_tlb_page() : flushes one page
105 *======================================================================*/
106void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
107{
108 BUG();
109}
110
111/*======================================================================*
112 * flush_tlb_range() : flushes a range of pages
113 *======================================================================*/
114void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
115 unsigned long end)
116{
117 BUG();
118}
119
120/*======================================================================*
121 * flush_tlb_mm() : flushes the specified mm context TLB's
122 *======================================================================*/
123void local_flush_tlb_mm(struct mm_struct *mm)
124{
125 BUG();
126}
127
128/*======================================================================*
129 * flush_tlb_all() : flushes all processes TLBs
130 *======================================================================*/
131void local_flush_tlb_all(void)
132{
133 BUG();
134}