patch-2.4.22 linux-2.4.22/arch/sh/mm/fault.c

Next file: linux-2.4.22/arch/sh/mm/init.c
Previous file: linux-2.4.22/arch/sh/mm/copy_page.S
Back to the patch index
Back to the overall index

diff -urN linux-2.4.21/arch/sh/mm/fault.c linux-2.4.22/arch/sh/mm/fault.c
@@ -1,4 +1,4 @@
-/* $Id: fault.c,v 1.49 2001/10/06 19:46:00 lethal Exp $
+/* $Id: fault.c,v 1.1.1.1.2.3 2002/10/24 05:52:58 mrbrown Exp $
  *
  *  linux/arch/sh/mm/fault.c
  *  Copyright (C) 1999  Niibe Yutaka
@@ -27,6 +27,10 @@
 #include <asm/hardirq.h>
 #include <asm/mmu_context.h>
 
+#if defined(CONFIG_SH_KGDB)
+#include <asm/kgdb.h>
+#endif
+
 extern void die(const char *,struct pt_regs *,long);
 
 /*
@@ -95,6 +99,11 @@
 	unsigned long page;
 	unsigned long fixup;
 
+#if defined(CONFIG_SH_KGDB)
+	if (kgdb_nofault && kgdb_bus_err_hook)
+	  kgdb_bus_err_hook();
+#endif
+
 	tsk = current;
 	mm = tsk->mm;
 
@@ -243,10 +252,16 @@
 	pte_t *pte;
 	pte_t entry;
 
+#if defined(CONFIG_SH_KGDB)
+	if (kgdb_nofault && kgdb_bus_err_hook)
+	  kgdb_bus_err_hook();
+#endif
 	if (address >= P3SEG && address < P4SEG)
 		dir = pgd_offset_k(address);
 	else if (address >= TASK_SIZE)
 		return 1;
+	else if (!current->mm)
+		return 1;
 	else
 		dir = pgd_offset(current->mm, address);
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)