Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ae0a846e411dc0b568e8ccda584896310ee5f369
Commit:     ae0a846e411dc0b568e8ccda584896310ee5f369
Parent:     d941caa2537a01653704a8c1148d330a3b2755f1
Author:     Russell King <[EMAIL PROTECTED]>
AuthorDate: Tue Jan 9 12:57:37 2007 +0000
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Tue Feb 6 16:46:48 2007 +0000

    [ARM] Move processor_modes[] to .../process.c
    
    bad_mode() currently prints the mode which caused the exception, and
    then causes an oops dump to be printed which again displays this
    information (since the CPSR in the struct pt_regs is correct.)  This
    leads to processor_modes[] being shared between traps.c and process.c
    with a local declaration of it.
    
    We can clean this up by moving processor_modes[] to process.c and
    removing the duplication, resulting in processor_modes[] becoming
    static.
    
    Signed-off-by: Russell King <[EMAIL PROTECTED]>
---
 arch/arm/kernel/entry-armv.S |    1 -
 arch/arm/kernel/process.c    |    8 +++++++-
 arch/arm/kernel/traps.c      |   12 ++----------
 3 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 8517c3c..cc10a09 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -99,7 +99,6 @@ common_invalid:
                                        @ cpsr_<exception>, "old_r0"
 
        mov     r0, sp
-       and     r2, r6, #0x1f
        b       bad_mode
 
 /*
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index a9e8f7e..782af3c 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -36,7 +36,13 @@
 #include <asm/uaccess.h>
 #include <asm/mach/time.h>
 
-extern const char *processor_modes[];
+static const char *processor_modes[] = {
+  "USER_26", "FIQ_26" , "IRQ_26" , "SVC_26" , "UK4_26" , "UK5_26" , "UK6_26" , 
"UK7_26" ,
+  "UK8_26" , "UK9_26" , "UK10_26", "UK11_26", "UK12_26", "UK13_26", "UK14_26", 
"UK15_26",
+  "USER_32", "FIQ_32" , "IRQ_32" , "SVC_32" , "UK4_32" , "UK5_32" , "UK6_32" , 
"ABT_32" ,
+  "UK8_32" , "UK9_32" , "UK10_32", "UND_32" , "UK12_32", "UK13_32", "UK14_32", 
"SYS_32"
+};
+
 extern void setup_mm_for_reboot(char mode);
 
 static volatile int hlt_counter;
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index 9089156..329609b 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -32,13 +32,6 @@
 #include "ptrace.h"
 #include "signal.h"
 
-const char *processor_modes[]=
-{ "USER_26", "FIQ_26" , "IRQ_26" , "SVC_26" , "UK4_26" , "UK5_26" , "UK6_26" , 
"UK7_26" ,
-  "UK8_26" , "UK9_26" , "UK10_26", "UK11_26", "UK12_26", "UK13_26", "UK14_26", 
"UK15_26",
-  "USER_32", "FIQ_32" , "IRQ_32" , "SVC_32" , "UK4_32" , "UK5_32" , "UK6_32" , 
"ABT_32" ,
-  "UK8_32" , "UK9_32" , "UK10_32", "UND_32" , "UK12_32", "UK13_32", "UK14_32", 
"SYS_32"
-};
-
 static const char *handler[]= { "prefetch abort", "data abort", "address 
exception", "interrupt" };
 
 #ifdef CONFIG_DEBUG_USER
@@ -337,12 +330,11 @@ asmlinkage void do_unexp_fiq (struct pt_regs *regs)
  * It never returns, and never tries to sync.  We hope that we can at least
  * dump out some state information...
  */
-asmlinkage void bad_mode(struct pt_regs *regs, int reason, int proc_mode)
+asmlinkage void bad_mode(struct pt_regs *regs, int reason)
 {
        console_verbose();
 
-       printk(KERN_CRIT "Bad mode in %s handler detected: mode %s\n",
-               handler[reason], processor_modes[proc_mode]);
+       printk(KERN_CRIT "Bad mode in %s handler detected\n", handler[reason]);
 
        die("Oops - bad mode", regs, 0);
        local_irq_disable();
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to