Skip to content
Navigation Menu
Toggle navigation
Sign in
In this repository
All GitHub Enterprise
↵
Jump to
↵
No suggested jump to results
In this repository
All GitHub Enterprise
↵
Jump to
↵
In this organization
All GitHub Enterprise
↵
Jump to
↵
In this repository
All GitHub Enterprise
↵
Jump to
↵
Sign in
Reseting focus
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
mariux64
/
linux
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Issues
1
Pull requests
0
Actions
Projects
0
Wiki
Security
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security
Insights
Files
cefc8be
Documentation
arch
alpha
arm
arm26
avr32
cris
frv
h8300
i386
ia64
m32r
boot
kernel
lib
m32104ut
m32700ut
mappi
mappi2
mappi3
mm
Makefile
cache.c
discontig.c
extable.c
fault-nommu.c
fault.c
init.c
ioremap-nommu.c
ioremap.c
mmu.S
page.S
oaks32r
oprofile
opsput
Kconfig
Kconfig.debug
Makefile
defconfig
m68k
m68knommu
mips
parisc
powerpc
ppc
s390
sh
sh64
sparc
sparc64
um
v850
x86_64
xtensa
block
crypto
drivers
fs
include
init
ipc
kernel
lib
mm
net
scripts
security
sound
usr
.gitignore
COPYING
CREDITS
Kbuild
MAINTAINERS
Makefile
README
REPORTING-BUGS
Breadcrumbs
linux
/
arch
/
m32r
/
mm
/
fault-nommu.c
Copy path
Blame
Blame
Latest commit
History
History
135 lines (120 loc) · 3.91 KB
Breadcrumbs
linux
/
arch
/
m32r
/
mm
/
fault-nommu.c
Top
File metadata and controls
Code
Blame
135 lines (120 loc) · 3.91 KB
Raw
/* * linux/arch/m32r/mm/fault.c * * Copyright (c) 2001, 2002 Hitoshi Yamamoto, and H. Kondo * * Some code taken from i386 version. * Copyright (C) 1995 Linus Torvalds */ #include <linux/signal.h> #include <linux/sched.h> #include <linux/kernel.h> #include <linux/errno.h> #include <linux/string.h> #include <linux/types.h> #include <linux/ptrace.h> #include <linux/mman.h> #include <linux/mm.h> #include <linux/smp.h> #include <linux/smp_lock.h> #include <linux/interrupt.h> #include <linux/init.h> #include <linux/vt_kern.h> /* For unblank_screen() */ #include <asm/m32r.h> #include <asm/system.h> #include <asm/uaccess.h> #include <asm/pgalloc.h> #include <asm/pgtable.h> #include <asm/hardirq.h> #include <asm/mmu_context.h> extern void die(const char *, struct pt_regs *, long); #ifndef CONFIG_SMP asmlinkage unsigned int tlb_entry_i_dat; asmlinkage unsigned int tlb_entry_d_dat; #define tlb_entry_i tlb_entry_i_dat #define tlb_entry_d tlb_entry_d_dat #else unsigned int tlb_entry_i_dat[NR_CPUS]; unsigned int tlb_entry_d_dat[NR_CPUS]; #define tlb_entry_i tlb_entry_i_dat[smp_processor_id()] #define tlb_entry_d tlb_entry_d_dat[smp_processor_id()] #endif void do_BUG(const char *file, int line) { bust_spinlocks(1); printk("kernel BUG at %s:%d!\n", file, line); } /*======================================================================* * do_page_fault() *======================================================================* * This routine handles page faults. It determines the address, * and the problem, and then passes it off to one of the appropriate * routines. * * ARGUMENT: * regs : M32R SP reg. * error_code : See below * address : M32R MMU MDEVA reg. (Operand ACE) * : M32R BPC reg. (Instruction ACE) * * error_code : * bit 0 == 0 means no page found, 1 means protection fault * bit 1 == 0 means read, 1 means write * bit 2 == 0 means kernel, 1 means user-mode *======================================================================*/ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address) { /* * Oops. The kernel tried to access some bad page. We'll have to * terminate things with extreme prejudice. */ bust_spinlocks(1); if (address < PAGE_SIZE) printk(KERN_ALERT "Unable to handle kernel NULL pointer dereference"); else printk(KERN_ALERT "Unable to handle kernel paging request"); printk(" at virtual address %08lx\n",address); printk(" printing bpc:\n"); printk(KERN_ALERT "bpc = %08lx\n", regs->bpc); die("Oops", regs, error_code); bust_spinlocks(0); do_exit(SIGKILL); } /*======================================================================* * update_mmu_cache() *======================================================================*/ void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr, pte_t pte) { BUG(); } /*======================================================================* * flush_tlb_page() : flushes one page *======================================================================*/ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) { BUG(); } /*======================================================================* * flush_tlb_range() : flushes a range of pages *======================================================================*/ void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) { BUG(); } /*======================================================================* * flush_tlb_mm() : flushes the specified mm context TLB's *======================================================================*/ void local_flush_tlb_mm(struct mm_struct *mm) { BUG(); } /*======================================================================* * flush_tlb_all() : flushes all processes TLBs *======================================================================*/ void local_flush_tlb_all(void) { BUG(); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
You can’t perform that action at this time.