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 |
6 files changed, 20 insertions, 33 deletions
diff --git a/arch/arm26/Kconfig b/arch/arm26/Kconfig index 20688bc13e9..9044f33299f 100644 --- a/arch/arm26/Kconfig +++ b/arch/arm26/Kconfig @@ -17,6 +17,9 @@ config MMU bool default y +config NO_DMA + def_bool y + config ARCH_ACORN bool default y diff --git a/arch/arm26/defconfig b/arch/arm26/defconfig index c4a89703c3d..2b7d44bf49b 100644 --- a/arch/arm26/defconfig +++ b/arch/arm26/defconfig @@ -248,7 +248,6 @@ CONFIG_I2C_CHARDEV=y # CONFIG_JBD_DEBUG is not set # CONFIG_FAT_FS is not set # CONFIG_MSDOS_FS is not set -# CONFIG_UMSDOS_FS is not set # CONFIG_VFAT_FS is not set # CONFIG_EFS_FS is not set # CONFIG_JFFS_FS is not set diff --git a/arch/arm26/kernel/ptrace.c b/arch/arm26/kernel/ptrace.c index 41692795672..0fefb86970c 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) long arch_ptrace(struct task_struct *child, long request, long addr, long data) { - unsigned long tmp; int ret; switch (request) { @@ -540,12 +539,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) */ case PTRACE_PEEKTEXT: case PTRACE_PEEKDATA: - ret = access_process_vm(child, addr, &tmp, - sizeof(unsigned long), 0); - if (ret == sizeof(unsigned long)) - ret = put_user(tmp, (unsigned long *) data); - else - ret = -EIO; + ret = generic_ptrace_peekdata(child, addr, data); break; case PTRACE_PEEKUSR: @@ -557,12 +551,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) */ case PTRACE_POKETEXT: case PTRACE_POKEDATA: - ret = access_process_vm(child, addr, &data, - sizeof(unsigned long), 1); - if (ret == sizeof(unsigned long)) - ret = 0; - else - ret = -EIO; + ret = generic_ptrace_pokedata(child, addr, data); break; case PTRACE_POKEUSR: diff --git a/arch/arm26/kernel/traps.c b/arch/arm26/kernel/traps.c index d594fb59e94..2911e2eae80 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) printk("Internal error: %s: %x\n", str, err); printk("CPU: %d\n", smp_processor_id()); show_regs(regs); + add_taint(TAINT_DIE); printk("Process %s (pid: %d, stack limit = 0x%p)\n", current->comm, current->pid, end_of_stack(tsk)); diff --git a/arch/arm26/mm/fault.c b/arch/arm26/mm/fault.c index 93c0cee0fb5..dec638a0c8d 100644 --- a/arch/arm26/mm/fault.c +++ b/arch/arm26/mm/fault.c @@ -170,20 +170,20 @@ good_area: */ survive: fault = handle_mm_fault(mm, vma, addr & PAGE_MASK, DO_COW(fsr)); - - /* - * Handle the "normal" cases first - successful and sigbus - */ - switch (fault) { - case VM_FAULT_MAJOR: + if (unlikely(fault & VM_FAULT_ERROR)) { + if (fault & VM_FAULT_OOM) + goto out_of_memory; + else if (fault & VM_FAULT_SIGBUS) + return fault; + BUG(); + } + if (fault & VM_FAULT_MAJOR) tsk->maj_flt++; - return fault; - case VM_FAULT_MINOR: + else tsk->min_flt++; - case VM_FAULT_SIGBUS: - return fault; - } + return fault; +out_of_memory: fault = -3; /* out of memory */ if (!is_init(tsk)) goto out; @@ -225,13 +225,11 @@ int do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs) /* * Handle the "normal" case first */ - switch (fault) { - case VM_FAULT_MINOR: - case VM_FAULT_MAJOR: + if (likely(!(fault & VM_FAULT_ERROR))) return 0; - case VM_FAULT_SIGBUS: + if (fault & VM_FAULT_SIGBUS) goto do_sigbus; - } + /* else VM_FAULT_OOM */ /* * 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 562fac12eb9..36e7ee3f832 100644 --- a/arch/arm26/mm/init.c +++ b/arch/arm26/mm/init.c @@ -33,9 +33,6 @@ #include <asm/map.h> - -#define TABLE_SIZE PTRS_PER_PTE * sizeof(pte_t)) - struct mmu_gather mmu_gathers[NR_CPUS]; extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; |