diff options
Diffstat (limited to 'arch/s390x')
-rw-r--r-- | arch/s390x/kernel/binfmt_elf32.c | 4 | ||||
-rw-r--r-- | arch/s390x/kernel/entry.S | 2 | ||||
-rw-r--r-- | arch/s390x/kernel/exec32.c | 5 | ||||
-rw-r--r-- | arch/s390x/kernel/linux32.c | 4 | ||||
-rw-r--r-- | arch/s390x/kernel/sys_s390.c | 4 | ||||
-rw-r--r-- | arch/s390x/mm/fault.c | 10 | ||||
-rw-r--r-- | arch/s390x/tools/dasdfmt/dasdfmt.c | 2 |
7 files changed, 15 insertions, 16 deletions
diff --git a/arch/s390x/kernel/binfmt_elf32.c b/arch/s390x/kernel/binfmt_elf32.c index b08f0f686..d21f6966b 100644 --- a/arch/s390x/kernel/binfmt_elf32.c +++ b/arch/s390x/kernel/binfmt_elf32.c @@ -193,11 +193,11 @@ elf_map32 (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int p if(!addr) addr = 0x40000000; - down(¤t->mm->mmap_sem); + down_write(¤t->mm->mmap_sem); map_addr = do_mmap(filep, ELF_PAGESTART(addr), eppnt->p_filesz + ELF_PAGEOFFSET(eppnt->p_vaddr), prot, type, eppnt->p_offset - ELF_PAGEOFFSET(eppnt->p_vaddr)); - up(¤t->mm->mmap_sem); + up_write(¤t->mm->mmap_sem); return(map_addr); } diff --git a/arch/s390x/kernel/entry.S b/arch/s390x/kernel/entry.S index c5fbdd61f..0dddf63c7 100644 --- a/arch/s390x/kernel/entry.S +++ b/arch/s390x/kernel/entry.S @@ -724,7 +724,7 @@ pgm_no_sv: stosm 48(%r15),0x03 # reenable interrupts lghi %r3,0x7f nr %r3,%r8 # clear per-event-bit & move to r3 - je pgm_dn # none of Martins exceptions occured bypass + je pgm_dn # none of Martins exceptions occurred bypass sll %r3,3 larl %r9,pgm_check_table lg %r9,0(%r3,%r9) # load address of handler routine diff --git a/arch/s390x/kernel/exec32.c b/arch/s390x/kernel/exec32.c index 3e6f44558..8c517456a 100644 --- a/arch/s390x/kernel/exec32.c +++ b/arch/s390x/kernel/exec32.c @@ -54,7 +54,7 @@ int setup_arg_pages32(struct linux_binprm *bprm) if (!mpnt) return -ENOMEM; - down(¤t->mm->mmap_sem); + down_write(¤t->mm->mmap_sem); { mpnt->vm_mm = current->mm; mpnt->vm_start = PAGE_MASK & (unsigned long) bprm->p; @@ -73,12 +73,11 @@ int setup_arg_pages32(struct linux_binprm *bprm) struct page *page = bprm->page[i]; if (page) { bprm->page[i] = NULL; - current->mm->rss++; put_dirty_page(current,page,stack_base); } stack_base += PAGE_SIZE; } - up(¤t->mm->mmap_sem); + up_write(¤t->mm->mmap_sem); return 0; } diff --git a/arch/s390x/kernel/linux32.c b/arch/s390x/kernel/linux32.c index 668ac46c4..c567d4b49 100644 --- a/arch/s390x/kernel/linux32.c +++ b/arch/s390x/kernel/linux32.c @@ -4184,9 +4184,9 @@ static inline long do_mmap2( goto out; } - down(¤t->mm->mmap_sem); + down_write(¤t->mm->mmap_sem); error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); - up(¤t->mm->mmap_sem); + up_write(¤t->mm->mmap_sem); if (file) fput(file); diff --git a/arch/s390x/kernel/sys_s390.c b/arch/s390x/kernel/sys_s390.c index 4c06bd326..e05a8be0b 100644 --- a/arch/s390x/kernel/sys_s390.c +++ b/arch/s390x/kernel/sys_s390.c @@ -61,9 +61,9 @@ static inline long do_mmap2( goto out; } - down(¤t->mm->mmap_sem); + down_write(¤t->mm->mmap_sem); error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); - up(¤t->mm->mmap_sem); + up_write(¤t->mm->mmap_sem); if (file) fput(file); diff --git a/arch/s390x/mm/fault.c b/arch/s390x/mm/fault.c index 4c324b690..cd60eb61d 100644 --- a/arch/s390x/mm/fault.c +++ b/arch/s390x/mm/fault.c @@ -122,7 +122,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code) * task's user address space, so we search the VMAs */ - down(&mm->mmap_sem); + down_read(&mm->mmap_sem); vma = find_vma(mm, address); if (!vma) { @@ -176,7 +176,7 @@ good_area: goto out_of_memory; } - up(&mm->mmap_sem); + up_read(&mm->mmap_sem); return; /* @@ -184,7 +184,7 @@ good_area: * Fix it, but check if it's kernel or user first.. */ bad_area: - up(&mm->mmap_sem); + up_read(&mm->mmap_sem); /* User mode accesses just cause a SIGSEGV */ if (psw_mask & PSW_PROBLEM_STATE) { @@ -243,14 +243,14 @@ no_context: * us unable to handle the page fault gracefully. */ out_of_memory: - up(&mm->mmap_sem); + up_read(&mm->mmap_sem); printk("VM: killing process %s\n", tsk->comm); if (psw_mask & PSW_PROBLEM_STATE) do_exit(SIGKILL); goto no_context; do_sigbus: - up(&mm->mmap_sem); + up_read(&mm->mmap_sem); /* * Send a sigbus, regardless of whether we were in kernel diff --git a/arch/s390x/tools/dasdfmt/dasdfmt.c b/arch/s390x/tools/dasdfmt/dasdfmt.c index 2820fc91d..560feff6b 100644 --- a/arch/s390x/tools/dasdfmt/dasdfmt.c +++ b/arch/s390x/tools/dasdfmt/dasdfmt.c @@ -477,7 +477,7 @@ do_format_dasd(char *dev_name,format_data_t format_params,int testmode, rc=stat(dev_name,&stat_buf); if (rc) { - ERRMSG_EXIT(EXIT_FAILURE,"%s: error occured during stat: " \ + ERRMSG_EXIT(EXIT_FAILURE,"%s: error occurred during stat: " \ "%s\n",prog_name,strerror(errno)); } else { if (!S_ISBLK(stat_buf.st_mode)) |