diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-28 17:40:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-28 17:40:39 -0400 |
commit | ebdea46fecae40c4d7effcd33f40918a37a1df4b (patch) | |
tree | e4312bf7f1f3d184738963a0ec300aa9fdfd55c1 /arch/arm/mm/fault.c | |
parent | fecf3404f4aba6d0edeba31eeb018cbb6326dff2 (diff) | |
parent | 250d375d1da45a5e08ab8baf5eaa7eb258afd82b (diff) |
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (130 commits)
[ARM] 3856/1: Add clocksource for Intel IXP4xx platforms
[ARM] 3855/1: Add generic time support
[ARM] 3873/1: S3C24XX: Add irq_chip names
[ARM] 3872/1: S3C24XX: Apply consistant tabbing to irq_chips
[ARM] 3871/1: S3C24XX: Fix ordering of EINT4..23
[ARM] nommu: confirms the CR_V bit in nommu mode
[ARM] nommu: abort handler fixup for !CPU_CP15_MMU cores.
[ARM] 3870/1: AT91: Start removing static memory mappings
[ARM] 3869/1: AT91: NAND support for DK and KB9202 boards
[ARM] 3868/1: AT91 hardware header update
[ARM] 3867/1: AT91 GPIO update
[ARM] 3866/1: AT91 clock update
[ARM] 3865/1: AT91RM9200 header updates
[ARM] 3862/2: S3C2410 - add basic power management support for AML M5900 series
[ARM] kthread: switch arch/arm/kernel/apm.c
[ARM] Off-by-one in arch/arm/common/icst*
[ARM] 3864/1: Refactore sharpsl_pm
[ARM] 3863/1: Add Locomo SPI Device
[ARM] 3847/2: Convert LOMOMO to use struct device for GPIOs
[ARM] Use CPU_CACHE_* where possible in asm/cacheflush.h
...
Diffstat (limited to 'arch/arm/mm/fault.c')
-rw-r--r-- | arch/arm/mm/fault.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index c5e0622c77..f0943d160f 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c | |||
@@ -131,10 +131,11 @@ __do_user_fault(struct task_struct *tsk, unsigned long addr, | |||
131 | force_sig_info(sig, &si, tsk); | 131 | force_sig_info(sig, &si, tsk); |
132 | } | 132 | } |
133 | 133 | ||
134 | void | 134 | void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs) |
135 | do_bad_area(struct task_struct *tsk, struct mm_struct *mm, unsigned long addr, | ||
136 | unsigned int fsr, struct pt_regs *regs) | ||
137 | { | 135 | { |
136 | struct task_struct *tsk = current; | ||
137 | struct mm_struct *mm = tsk->active_mm; | ||
138 | |||
138 | /* | 139 | /* |
139 | * If we are in kernel mode at this point, we | 140 | * If we are in kernel mode at this point, we |
140 | * have no context to handle this fault with. | 141 | * have no context to handle this fault with. |
@@ -319,7 +320,6 @@ static int | |||
319 | do_translation_fault(unsigned long addr, unsigned int fsr, | 320 | do_translation_fault(unsigned long addr, unsigned int fsr, |
320 | struct pt_regs *regs) | 321 | struct pt_regs *regs) |
321 | { | 322 | { |
322 | struct task_struct *tsk; | ||
323 | unsigned int index; | 323 | unsigned int index; |
324 | pgd_t *pgd, *pgd_k; | 324 | pgd_t *pgd, *pgd_k; |
325 | pmd_t *pmd, *pmd_k; | 325 | pmd_t *pmd, *pmd_k; |
@@ -351,9 +351,7 @@ do_translation_fault(unsigned long addr, unsigned int fsr, | |||
351 | return 0; | 351 | return 0; |
352 | 352 | ||
353 | bad_area: | 353 | bad_area: |
354 | tsk = current; | 354 | do_bad_area(addr, fsr, regs); |
355 | |||
356 | do_bad_area(tsk, tsk->active_mm, addr, fsr, regs); | ||
357 | return 0; | 355 | return 0; |
358 | } | 356 | } |
359 | 357 | ||
@@ -364,8 +362,7 @@ bad_area: | |||
364 | static int | 362 | static int |
365 | do_sect_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs) | 363 | do_sect_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs) |
366 | { | 364 | { |
367 | struct task_struct *tsk = current; | 365 | do_bad_area(addr, fsr, regs); |
368 | do_bad_area(tsk, tsk->active_mm, addr, fsr, regs); | ||
369 | return 0; | 366 | return 0; |
370 | } | 367 | } |
371 | 368 | ||