aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMark Fortescue <mark@mtfhpc.demon.co.uk>2007-07-31 05:03:11 -0400
committerDavid S. Miller <davem@davemloft.net>2007-07-31 05:03:11 -0400
commitda4e9fea85ea42c9c6ce163a85d5164efbec31a2 (patch)
treeb146756eda55bbfecc49465dbf49ec320624496b /arch
parent2fa3195d72f7d0cfb4dcb2b0dfa265ed0fa5cfa3 (diff)
[SPARC]: Fix exec failures on sun4c.
This deals with a sun4c issue caused by commit b6a2fea39318e43fee84fa7b0b90d68bed92d2ba: mm: variable length argument support. The new way the code works means that sun4c_update_mmu_cache gets called before a context has been selected, which results in invalid operation of the underling mm code. Simply ignoring update requests when there is no valid context solves the problem. Signed-off-by Mark Fortescue <mark@mtfhpc.demon.co.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch')
-rw-r--r--arch/sparc/mm/sun4c.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/sparc/mm/sun4c.c b/arch/sparc/mm/sun4c.c
index a57a366e339a..79d60d86f6f8 100644
--- a/arch/sparc/mm/sun4c.c
+++ b/arch/sparc/mm/sun4c.c
@@ -1999,6 +1999,9 @@ void sun4c_update_mmu_cache(struct vm_area_struct *vma, unsigned long address, p
1999 unsigned long flags; 1999 unsigned long flags;
2000 int pseg; 2000 int pseg;
2001 2001
2002 if (vma->vm_mm->context == NO_CONTEXT)
2003 return;
2004
2002 local_irq_save(flags); 2005 local_irq_save(flags);
2003 address &= PAGE_MASK; 2006 address &= PAGE_MASK;
2004 if ((pseg = sun4c_get_segmap(address)) == invalid_segment) { 2007 if ((pseg = sun4c_get_segmap(address)) == invalid_segment) {