summaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-06-22 23:05:57 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-06-22 23:05:57 +0000
commit51d3b7814cdccef9188240fe0cbd8d97ff2c7470 (patch)
tree5cbb01d0323d4f63ade66bdf48ba4a91aaa6df16 /arch/sparc64/kernel
parent52273a23c9a84336b93a35e4847fc88fac7eb0e4 (diff)
Merge with Linux 2.3.7.
WARNING: 2.3.7 is known to eat filesystems for breakfast and little children for lunch, so if you try this on your machine make backups first ...
Diffstat (limited to 'arch/sparc64/kernel')
-rw-r--r--arch/sparc64/kernel/ptrace.c14
-rw-r--r--arch/sparc64/kernel/signal.c3
-rw-r--r--arch/sparc64/kernel/signal32.c3
-rw-r--r--arch/sparc64/kernel/sys_sunos32.c2
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(&current->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(&current->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;