diff options
Diffstat (limited to 'arch/sparc64/kernel')
-rw-r--r-- | arch/sparc64/kernel/ptrace.c | 14 | ||||
-rw-r--r-- | arch/sparc64/kernel/signal.c | 3 | ||||
-rw-r--r-- | arch/sparc64/kernel/signal32.c | 3 | ||||
-rw-r--r-- | arch/sparc64/kernel/sys_sunos32.c | 2 |
4 files changed, 12 insertions, 10 deletions
diff --git a/arch/sparc64/kernel/ptrace.c b/arch/sparc64/kernel/ptrace.c index 00340d6d5..476d53558 100644 --- a/arch/sparc64/kernel/ptrace.c +++ b/arch/sparc64/kernel/ptrace.c @@ -34,7 +34,7 @@ * and that it is in the task area before calling this: this routine does * no checking. */ -static pte_t *get_page(struct task_struct * tsk, +static pte_t *ptrace_get_page(struct task_struct * tsk, struct vm_area_struct * vma, unsigned long addr, int write) { pgd_t * pgdir; @@ -121,7 +121,7 @@ static inline unsigned long get_long(struct task_struct * tsk, pte_t * pgtable; unsigned long page, retval; - if (!(pgtable = get_page (tsk, vma, addr, 0))) return 0; + if (!(pgtable = ptrace_get_page (tsk, vma, addr, 0))) return 0; page = pte_page(*pgtable); /* this is a hack for non-kernel-mapped video buffers and similar */ if (MAP_NR(page) >= max_mapnr) @@ -138,7 +138,7 @@ static inline void put_long(struct task_struct * tsk, struct vm_area_struct * vm pte_t *pgtable; unsigned long page; - if (!(pgtable = get_page (tsk, vma, addr, 1))) return; + if (!(pgtable = ptrace_get_page (tsk, vma, addr, 1))) return; page = pte_page(*pgtable); /* this is a hack for non-kernel-mapped video buffers and similar */ flush_cache_page(vma, addr); @@ -166,7 +166,7 @@ static inline unsigned int get_int(struct task_struct * tsk, unsigned long page; unsigned int retval; - if (!(pgtable = get_page (tsk, vma, addr, 0))) return 0; + if (!(pgtable = ptrace_get_page (tsk, vma, addr, 0))) return 0; page = pte_page(*pgtable); /* this is a hack for non-kernel-mapped video buffers and similar */ if (MAP_NR(page) >= max_mapnr) @@ -183,7 +183,7 @@ static inline void put_int(struct task_struct * tsk, struct vm_area_struct * vma pte_t *pgtable; unsigned long page; - if (!(pgtable = get_page (tsk, vma, addr, 1))) return; + if (!(pgtable = ptrace_get_page (tsk, vma, addr, 1))) return; page = pte_page(*pgtable); /* this is a hack for non-kernel-mapped video buffers and similar */ flush_cache_page(vma, addr); @@ -941,7 +941,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs) pt_error_return(regs, EIO); goto flush_and_out; } - pgtable = get_page (child, vma, src, 0); + pgtable = ptrace_get_page (child, vma, src, 0); up(&child->mm->mmap_sem); if (src & ~PAGE_MASK) { curlen = PAGE_SIZE - (src & ~PAGE_MASK); @@ -988,7 +988,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs) pt_error_return(regs, EIO); goto flush_and_out; } - pgtable = get_page (child, vma, dest, 1); + pgtable = ptrace_get_page (child, vma, dest, 1); up(&child->mm->mmap_sem); if (dest & ~PAGE_MASK) { curlen = PAGE_SIZE - (dest & ~PAGE_MASK); diff --git a/arch/sparc64/kernel/signal.c b/arch/sparc64/kernel/signal.c index e0ba8aa1e..247afc77c 100644 --- a/arch/sparc64/kernel/signal.c +++ b/arch/sparc64/kernel/signal.c @@ -1,4 +1,4 @@ -/* $Id: signal.c,v 1.40 1999/06/02 19:19:52 jj Exp $ +/* $Id: signal.c,v 1.41 1999/06/14 05:23:58 davem Exp $ * arch/sparc64/kernel/signal.c * * Copyright (C) 1991, 1992 Linus Torvalds @@ -898,6 +898,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs * regs, default: lock_kernel(); sigaddset(¤t->signal, signr); + recalc_sigpending(current); current->flags |= PF_SIGNALED; do_exit(exit_code); /* NOT REACHED */ diff --git a/arch/sparc64/kernel/signal32.c b/arch/sparc64/kernel/signal32.c index d425132fd..b1190d244 100644 --- a/arch/sparc64/kernel/signal32.c +++ b/arch/sparc64/kernel/signal32.c @@ -1,4 +1,4 @@ -/* $Id: signal32.c,v 1.47 1998/10/13 09:07:40 davem Exp $ +/* $Id: signal32.c,v 1.48 1999/06/14 05:24:01 davem Exp $ * arch/sparc64/kernel/signal32.c * * Copyright (C) 1991, 1992 Linus Torvalds @@ -1336,6 +1336,7 @@ asmlinkage int do_signal32(sigset_t *oldset, struct pt_regs * regs, default: lock_kernel(); sigaddset(¤t->signal, signr); + recalc_sigpending(current); current->flags |= PF_SIGNALED; do_exit(exit_code); /* NOT REACHED */ diff --git a/arch/sparc64/kernel/sys_sunos32.c b/arch/sparc64/kernel/sys_sunos32.c index 99e010e78..d375dc26b 100644 --- a/arch/sparc64/kernel/sys_sunos32.c +++ b/arch/sparc64/kernel/sys_sunos32.c @@ -164,7 +164,7 @@ asmlinkage int sunos_brk(u32 baddr) * fool it, but this should catch most mistakes. */ freepages = buffermem >> PAGE_SHIFT; - freepages += page_cache_size; + freepages += atomic_read(&page_cache_size); freepages >>= 1; freepages += nr_free_pages; freepages += nr_swap_pages; |