aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/nwfpe
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-05-15 05:40:21 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-05-15 10:03:51 -0400
commit49aea0fd95495538230e19f58e217fb06ffdbfeb (patch)
tree8865597906e8c706f90cb47786a55c73e3f7a12c /arch/arm/nwfpe
parent8e2a43f5f5e1255879064924917fb1a6e5be7cb3 (diff)
ARM: nwfpe: allow debugging output to be configured at runtime
Enabling CONFIG_USER_DEBUG allows NWFPE to complain about every FP exception, which with some programs can cause the kernel message log to fill with NWFPE debug, swamping out other messages. This change allows NWFPE debugging to be configured at run time. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/nwfpe')
-rw-r--r--arch/arm/nwfpe/fpmodule.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/arm/nwfpe/fpmodule.c b/arch/arm/nwfpe/fpmodule.c
index 4c0ab50f399a..cb7658e8acc5 100644
--- a/arch/arm/nwfpe/fpmodule.c
+++ b/arch/arm/nwfpe/fpmodule.c
@@ -24,6 +24,7 @@
24#include "fpa11.h" 24#include "fpa11.h"
25 25
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/moduleparam.h>
27 28
28/* XXX */ 29/* XXX */
29#include <linux/errno.h> 30#include <linux/errno.h>
@@ -134,13 +135,17 @@ a SIGFPE exception if necessary. If not the relevant bits in the
134cumulative exceptions flag byte are set and we return. 135cumulative exceptions flag byte are set and we return.
135*/ 136*/
136 137
138#ifdef CONFIG_DEBUG_USER
139/* By default, ignore inexact errors as there are far too many of them to log */
140static int debug = ~BIT_IXC;
141#endif
142
137void float_raise(signed char flags) 143void float_raise(signed char flags)
138{ 144{
139 register unsigned int fpsr, cumulativeTraps; 145 register unsigned int fpsr, cumulativeTraps;
140 146
141#ifdef CONFIG_DEBUG_USER 147#ifdef CONFIG_DEBUG_USER
142 /* Ignore inexact errors as there are far too many of them to log */ 148 if (flags & debug)
143 if (flags & ~BIT_IXC)
144 printk(KERN_DEBUG 149 printk(KERN_DEBUG
145 "NWFPE: %s[%d] takes exception %08x at %p from %08lx\n", 150 "NWFPE: %s[%d] takes exception %08x at %p from %08lx\n",
146 current->comm, current->pid, flags, 151 current->comm, current->pid, flags,
@@ -179,3 +184,7 @@ module_exit(fpe_exit);
179MODULE_AUTHOR("Scott Bambrough <scottb@rebel.com>"); 184MODULE_AUTHOR("Scott Bambrough <scottb@rebel.com>");
180MODULE_DESCRIPTION("NWFPE floating point emulator (" NWFPE_BITS " precision)"); 185MODULE_DESCRIPTION("NWFPE floating point emulator (" NWFPE_BITS " precision)");
181MODULE_LICENSE("GPL"); 186MODULE_LICENSE("GPL");
187
188#ifdef CONFIG_DEBUG_USER
189module_param(debug, int, 0644);
190#endif