diff options
author | Chris Dearman <chris@mips.com> | 2006-06-30 09:19:45 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-07-13 16:25:57 -0400 |
commit | e35a5e35e0f45209a45ec2fd6df90f5ac3a05992 (patch) | |
tree | 9b17f2518ee55f06ceac2987b29a9457f9101078 | |
parent | 98ab66cdd182f35008fb8993bb930ddde88db923 (diff) |
[MIPS] Less noise on multithreading exceptions.
Make the MT handler silent and output the MT exception type at debug
priority.
Signed-off-by: Chris Dearman <chris@mips.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r-- | arch/mips/kernel/genex.S | 2 | ||||
-rw-r--r-- | arch/mips/kernel/traps.c | 16 |
2 files changed, 8 insertions, 10 deletions
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S index 5254a2222d2b..b563811b1b27 100644 --- a/arch/mips/kernel/genex.S +++ b/arch/mips/kernel/genex.S | |||
@@ -365,7 +365,7 @@ NESTED(nmi_handler, PT_SIZE, sp) | |||
365 | BUILD_HANDLER mdmx mdmx sti silent /* #22 */ | 365 | BUILD_HANDLER mdmx mdmx sti silent /* #22 */ |
366 | BUILD_HANDLER watch watch sti verbose /* #23 */ | 366 | BUILD_HANDLER watch watch sti verbose /* #23 */ |
367 | BUILD_HANDLER mcheck mcheck cli verbose /* #24 */ | 367 | BUILD_HANDLER mcheck mcheck cli verbose /* #24 */ |
368 | BUILD_HANDLER mt mt sti verbose /* #25 */ | 368 | BUILD_HANDLER mt mt sti silent /* #25 */ |
369 | BUILD_HANDLER dsp dsp sti silent /* #26 */ | 369 | BUILD_HANDLER dsp dsp sti silent /* #26 */ |
370 | BUILD_HANDLER reserved reserved sti verbose /* others */ | 370 | BUILD_HANDLER reserved reserved sti verbose /* others */ |
371 | 371 | ||
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 8b95eca9ac74..7cbcbd9a9540 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -847,31 +847,29 @@ asmlinkage void do_mt(struct pt_regs *regs) | |||
847 | { | 847 | { |
848 | int subcode; | 848 | int subcode; |
849 | 849 | ||
850 | die_if_kernel("MIPS MT Thread exception in kernel", regs); | ||
851 | |||
852 | subcode = (read_vpe_c0_vpecontrol() & VPECONTROL_EXCPT) | 850 | subcode = (read_vpe_c0_vpecontrol() & VPECONTROL_EXCPT) |
853 | >> VPECONTROL_EXCPT_SHIFT; | 851 | >> VPECONTROL_EXCPT_SHIFT; |
854 | switch (subcode) { | 852 | switch (subcode) { |
855 | case 0: | 853 | case 0: |
856 | printk(KERN_ERR "Thread Underflow\n"); | 854 | printk(KERN_DEBUG "Thread Underflow\n"); |
857 | break; | 855 | break; |
858 | case 1: | 856 | case 1: |
859 | printk(KERN_ERR "Thread Overflow\n"); | 857 | printk(KERN_DEBUG "Thread Overflow\n"); |
860 | break; | 858 | break; |
861 | case 2: | 859 | case 2: |
862 | printk(KERN_ERR "Invalid YIELD Qualifier\n"); | 860 | printk(KERN_DEBUG "Invalid YIELD Qualifier\n"); |
863 | break; | 861 | break; |
864 | case 3: | 862 | case 3: |
865 | printk(KERN_ERR "Gating Storage Exception\n"); | 863 | printk(KERN_DEBUG "Gating Storage Exception\n"); |
866 | break; | 864 | break; |
867 | case 4: | 865 | case 4: |
868 | printk(KERN_ERR "YIELD Scheduler Exception\n"); | 866 | printk(KERN_DEBUG "YIELD Scheduler Exception\n"); |
869 | break; | 867 | break; |
870 | case 5: | 868 | case 5: |
871 | printk(KERN_ERR "Gating Storage Schedulier Exception\n"); | 869 | printk(KERN_DEBUG "Gating Storage Schedulier Exception\n"); |
872 | break; | 870 | break; |
873 | default: | 871 | default: |
874 | printk(KERN_ERR "*** UNKNOWN THREAD EXCEPTION %d ***\n", | 872 | printk(KERN_DEBUG "*** UNKNOWN THREAD EXCEPTION %d ***\n", |
875 | subcode); | 873 | subcode); |
876 | break; | 874 | break; |
877 | } | 875 | } |