diff options
Diffstat (limited to 'arch/arm26')
-rw-r--r-- | arch/arm26/Kconfig | 3 | ||||
-rw-r--r-- | arch/arm26/defconfig | 1 | ||||
-rw-r--r-- | arch/arm26/kernel/ptrace.c | 15 | ||||
-rw-r--r-- | arch/arm26/kernel/traps.c | 1 | ||||
-rw-r--r-- | arch/arm26/mm/fault.c | 30 | ||||
-rw-r--r-- | arch/arm26/mm/init.c | 3 | ||||
-rw-r--r-- | arch/arm26/mm/memc.c | 4 |
7 files changed, 22 insertions, 35 deletions
diff --git a/arch/arm26/Kconfig b/arch/arm26/Kconfig index 20688bc13e9b..9044f33299f7 100644 --- a/arch/arm26/Kconfig +++ b/arch/arm26/Kconfig | |||
@@ -17,6 +17,9 @@ config MMU | |||
17 | bool | 17 | bool |
18 | default y | 18 | default y |
19 | 19 | ||
20 | config NO_DMA | ||
21 | def_bool y | ||
22 | |||
20 | config ARCH_ACORN | 23 | config ARCH_ACORN |
21 | bool | 24 | bool |
22 | default y | 25 | default y |
diff --git a/arch/arm26/defconfig b/arch/arm26/defconfig index c4a89703c3d8..2b7d44bf49bf 100644 --- a/arch/arm26/defconfig +++ b/arch/arm26/defconfig | |||
@@ -248,7 +248,6 @@ CONFIG_I2C_CHARDEV=y | |||
248 | # CONFIG_JBD_DEBUG is not set | 248 | # CONFIG_JBD_DEBUG is not set |
249 | # CONFIG_FAT_FS is not set | 249 | # CONFIG_FAT_FS is not set |
250 | # CONFIG_MSDOS_FS is not set | 250 | # CONFIG_MSDOS_FS is not set |
251 | # CONFIG_UMSDOS_FS is not set | ||
252 | # CONFIG_VFAT_FS is not set | 251 | # CONFIG_VFAT_FS is not set |
253 | # CONFIG_EFS_FS is not set | 252 | # CONFIG_EFS_FS is not set |
254 | # CONFIG_JFFS_FS is not set | 253 | # CONFIG_JFFS_FS is not set |
diff --git a/arch/arm26/kernel/ptrace.c b/arch/arm26/kernel/ptrace.c index 416927956721..0fefb86970c6 100644 --- a/arch/arm26/kernel/ptrace.c +++ b/arch/arm26/kernel/ptrace.c | |||
@@ -531,7 +531,6 @@ static int ptrace_setfpregs(struct task_struct *tsk, void *ufp) | |||
531 | 531 | ||
532 | long arch_ptrace(struct task_struct *child, long request, long addr, long data) | 532 | long arch_ptrace(struct task_struct *child, long request, long addr, long data) |
533 | { | 533 | { |
534 | unsigned long tmp; | ||
535 | int ret; | 534 | int ret; |
536 | 535 | ||
537 | switch (request) { | 536 | switch (request) { |
@@ -540,12 +539,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
540 | */ | 539 | */ |
541 | case PTRACE_PEEKTEXT: | 540 | case PTRACE_PEEKTEXT: |
542 | case PTRACE_PEEKDATA: | 541 | case PTRACE_PEEKDATA: |
543 | ret = access_process_vm(child, addr, &tmp, | 542 | ret = generic_ptrace_peekdata(child, addr, data); |
544 | sizeof(unsigned long), 0); | ||
545 | if (ret == sizeof(unsigned long)) | ||
546 | ret = put_user(tmp, (unsigned long *) data); | ||
547 | else | ||
548 | ret = -EIO; | ||
549 | break; | 543 | break; |
550 | 544 | ||
551 | case PTRACE_PEEKUSR: | 545 | case PTRACE_PEEKUSR: |
@@ -557,12 +551,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
557 | */ | 551 | */ |
558 | case PTRACE_POKETEXT: | 552 | case PTRACE_POKETEXT: |
559 | case PTRACE_POKEDATA: | 553 | case PTRACE_POKEDATA: |
560 | ret = access_process_vm(child, addr, &data, | 554 | ret = generic_ptrace_pokedata(child, addr, data); |
561 | sizeof(unsigned long), 1); | ||
562 | if (ret == sizeof(unsigned long)) | ||
563 | ret = 0; | ||
564 | else | ||
565 | ret = -EIO; | ||
566 | break; | 555 | break; |
567 | 556 | ||
568 | case PTRACE_POKEUSR: | 557 | case PTRACE_POKEUSR: |
diff --git a/arch/arm26/kernel/traps.c b/arch/arm26/kernel/traps.c index d594fb59e945..2911e2eae80e 100644 --- a/arch/arm26/kernel/traps.c +++ b/arch/arm26/kernel/traps.c | |||
@@ -185,6 +185,7 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err) | |||
185 | printk("Internal error: %s: %x\n", str, err); | 185 | printk("Internal error: %s: %x\n", str, err); |
186 | printk("CPU: %d\n", smp_processor_id()); | 186 | printk("CPU: %d\n", smp_processor_id()); |
187 | show_regs(regs); | 187 | show_regs(regs); |
188 | add_taint(TAINT_DIE); | ||
188 | printk("Process %s (pid: %d, stack limit = 0x%p)\n", | 189 | printk("Process %s (pid: %d, stack limit = 0x%p)\n", |
189 | current->comm, current->pid, end_of_stack(tsk)); | 190 | current->comm, current->pid, end_of_stack(tsk)); |
190 | 191 | ||
diff --git a/arch/arm26/mm/fault.c b/arch/arm26/mm/fault.c index 93c0cee0fb5e..dec638a0c8d9 100644 --- a/arch/arm26/mm/fault.c +++ b/arch/arm26/mm/fault.c | |||
@@ -170,20 +170,20 @@ good_area: | |||
170 | */ | 170 | */ |
171 | survive: | 171 | survive: |
172 | fault = handle_mm_fault(mm, vma, addr & PAGE_MASK, DO_COW(fsr)); | 172 | fault = handle_mm_fault(mm, vma, addr & PAGE_MASK, DO_COW(fsr)); |
173 | 173 | if (unlikely(fault & VM_FAULT_ERROR)) { | |
174 | /* | 174 | if (fault & VM_FAULT_OOM) |
175 | * Handle the "normal" cases first - successful and sigbus | 175 | goto out_of_memory; |
176 | */ | 176 | else if (fault & VM_FAULT_SIGBUS) |
177 | switch (fault) { | 177 | return fault; |
178 | case VM_FAULT_MAJOR: | 178 | BUG(); |
179 | } | ||
180 | if (fault & VM_FAULT_MAJOR) | ||
179 | tsk->maj_flt++; | 181 | tsk->maj_flt++; |
180 | return fault; | 182 | else |
181 | case VM_FAULT_MINOR: | ||
182 | tsk->min_flt++; | 183 | tsk->min_flt++; |
183 | case VM_FAULT_SIGBUS: | 184 | return fault; |
184 | return fault; | ||
185 | } | ||
186 | 185 | ||
186 | out_of_memory: | ||
187 | fault = -3; /* out of memory */ | 187 | fault = -3; /* out of memory */ |
188 | if (!is_init(tsk)) | 188 | if (!is_init(tsk)) |
189 | goto out; | 189 | goto out; |
@@ -225,13 +225,11 @@ int do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs) | |||
225 | /* | 225 | /* |
226 | * Handle the "normal" case first | 226 | * Handle the "normal" case first |
227 | */ | 227 | */ |
228 | switch (fault) { | 228 | if (likely(!(fault & VM_FAULT_ERROR))) |
229 | case VM_FAULT_MINOR: | ||
230 | case VM_FAULT_MAJOR: | ||
231 | return 0; | 229 | return 0; |
232 | case VM_FAULT_SIGBUS: | 230 | if (fault & VM_FAULT_SIGBUS) |
233 | goto do_sigbus; | 231 | goto do_sigbus; |
234 | } | 232 | /* else VM_FAULT_OOM */ |
235 | 233 | ||
236 | /* | 234 | /* |
237 | * If we are in kernel mode at this point, we | 235 | * If we are in kernel mode at this point, we |
diff --git a/arch/arm26/mm/init.c b/arch/arm26/mm/init.c index 562fac12eb95..36e7ee3f8321 100644 --- a/arch/arm26/mm/init.c +++ b/arch/arm26/mm/init.c | |||
@@ -33,9 +33,6 @@ | |||
33 | 33 | ||
34 | #include <asm/map.h> | 34 | #include <asm/map.h> |
35 | 35 | ||
36 | |||
37 | #define TABLE_SIZE PTRS_PER_PTE * sizeof(pte_t)) | ||
38 | |||
39 | struct mmu_gather mmu_gathers[NR_CPUS]; | 36 | struct mmu_gather mmu_gathers[NR_CPUS]; |
40 | 37 | ||
41 | extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; | 38 | extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; |
diff --git a/arch/arm26/mm/memc.c b/arch/arm26/mm/memc.c index 42505541a9b1..ffecd8578247 100644 --- a/arch/arm26/mm/memc.c +++ b/arch/arm26/mm/memc.c | |||
@@ -176,9 +176,9 @@ void __init pgtable_cache_init(void) | |||
176 | { | 176 | { |
177 | pte_cache = kmem_cache_create("pte-cache", | 177 | pte_cache = kmem_cache_create("pte-cache", |
178 | sizeof(pte_t) * PTRS_PER_PTE, | 178 | sizeof(pte_t) * PTRS_PER_PTE, |
179 | 0, SLAB_PANIC, pte_cache_ctor, NULL); | 179 | 0, SLAB_PANIC, pte_cache_ctor); |
180 | 180 | ||
181 | pgd_cache = kmem_cache_create("pgd-cache", MEMC_TABLE_SIZE + | 181 | pgd_cache = kmem_cache_create("pgd-cache", MEMC_TABLE_SIZE + |
182 | sizeof(pgd_t) * PTRS_PER_PGD, | 182 | sizeof(pgd_t) * PTRS_PER_PGD, |
183 | 0, SLAB_PANIC, pgd_cache_ctor, NULL); | 183 | 0, SLAB_PANIC, pgd_cache_ctor); |
184 | } | 184 | } |