[parisc-linux-cvs] linux-2.5 tausq

Randolph Chung Randolph Chung <randolph@tausq.org>
Sun, 12 Jan 2003 00:23:46 -0800


> -pa1
> use global search_exception_tables() function instead of pa-specific one

Index: arch/parisc/kernel/unaligned.c
===================================================================
RCS file: /var/cvs/linux-2.5/arch/parisc/kernel/unaligned.c,v
retrieving revision 1.3
diff -u -p -r1.3 unaligned.c
--- arch/parisc/kernel/unaligned.c	20 Dec 2002 07:26:41 -0000	1.3
+++ arch/parisc/kernel/unaligned.c	12 Jan 2003 08:15:57 -0000
@@ -33,6 +33,7 @@
 #include <linux/spinlock.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
+#include <linux/module.h>
 #include <asm/system.h>
 #include <asm/uaccess.h>
 #include <asm/io.h>
@@ -313,7 +314,7 @@ void handle_unaligned(struct pt_regs *re
 		 * exception handler 
 		 */ 
 
-		fix = search_exception_table(regs->iaoq[0]);
+		fix = search_exception_tables(regs->iaoq[0]);
 		if (fix)
 		{
 			/* lower bits of fix->skip are flags
Index: arch/parisc/mm/extable.c
===================================================================
RCS file: /var/cvs/linux-2.5/arch/parisc/mm/extable.c,v
retrieving revision 1.5
diff -u -p -r1.5 extable.c
--- arch/parisc/mm/extable.c	12 Jan 2003 00:19:39 -0000	1.5
+++ arch/parisc/mm/extable.c	12 Jan 2003 08:15:57 -0000
@@ -11,10 +11,6 @@
 #include <linux/ptrace.h>
 #include <asm/uaccess.h>
 
-
-extern const struct exception_table_entry __start___ex_table[];
-extern const struct exception_table_entry __stop___ex_table[];
-
 const struct exception_table_entry *
 search_extable(const struct exception_table_entry *first,
 	       const struct exception_table_entry *last,
@@ -41,35 +37,5 @@ search_extable(const struct exception_ta
         }
 
         return 0;
-}
-
-const struct exception_table_entry *
-search_exception_table (unsigned long addr)
-{
-	const struct exception_table_entry *ret = 0;
-	
-#ifndef CONFIG_MODULES
-	/* There is only the kernel to search.  */
-	ret = search_extable(__start___ex_table, __stop___ex_table-1, addr);
-	return ret;
-#else
-	unsigned long flags;
-	struct list_head *i;
-
-	/* The kernel is the last "module" -- no need to treat it special.  */
-	spin_lock_irqsave(&modlist_lock, flags);
-	list_for_each(i, &extables) {
-		struct exception_table *ex
-			= list_entry(i, struct exception_table, list);
-		if (ex->num_entries == 0)
-			continue;
-		ret = search_extable(ex->entry,
-				       ex->entry + ex->num_entries - 1, addr);
-		if (ret)
-			break;
-	}
-	spin_unlock_irqrestore(&modlist_lock, flags);
-	return ret;
-#endif
 }
 
Index: arch/parisc/mm/fault.c
===================================================================
RCS file: /var/cvs/linux-2.5/arch/parisc/mm/fault.c,v
retrieving revision 1.3
diff -u -p -r1.3 fault.c
--- arch/parisc/mm/fault.c	20 Jul 2002 16:27:06 -0000	1.3
+++ arch/parisc/mm/fault.c	12 Jan 2003 08:15:57 -0000
@@ -15,6 +15,7 @@
 #include <linux/ptrace.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
+#include <linux/module.h>
 
 #include <asm/uaccess.h>
 #include <asm/traps.h>
@@ -230,7 +231,7 @@ no_context:
 
 	if (!user_mode(regs)) {
 
-		fix = search_exception_table(regs->iaoq[0]);
+		fix = search_exception_tables(regs->iaoq[0]);
 
 		if (fix) {
 
 #define PAGE_BUG(page) do { \
Index: include/asm-parisc/uaccess.h
===================================================================
RCS file: /var/cvs/linux-2.5/include/asm-parisc/uaccess.h,v
retrieving revision 1.6
diff -u -p -r1.6 uaccess.h
--- include/asm-parisc/uaccess.h	9 Nov 2002 16:11:05 -0000	1.6
+++ include/asm-parisc/uaccess.h	12 Jan 2003 08:16:16 -0000
@@ -61,9 +61,6 @@ struct exception_table_entry {
 	long skip;           /* pcoq skip | r9 clear flag | r8 -EFAULT flag */
 };
 
-extern const struct exception_table_entry 
-    *search_exception_table(unsigned long addr);
-
 #define __get_user(x,ptr)                               \
 ({                                                      \
 	register long __gu_err __asm__ ("r8") = 0;      \
Index: Makefile
===================================================================
RCS file: /var/cvs/linux-2.5/Makefile,v
retrieving revision 1.64
diff -u -p -r1.64 Makefile
--- Makefile	11 Jan 2003 23:03:46 -0000	1.64
+++ Makefile	12 Jan 2003 08:23:43 -0000
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 5
 SUBLEVEL = 56
-EXTRAVERSION = -pa0
+EXTRAVERSION = -pa1
 
 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"

-- 
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/