diff options
Diffstat (limited to 'arch/sparc/kernel/unaligned_64.c')
| -rw-r--r-- | arch/sparc/kernel/unaligned_64.c | 11 | 
1 files changed, 3 insertions, 8 deletions
diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c index 378ca82b9cc..ebce43018c4 100644 --- a/arch/sparc/kernel/unaligned_64.c +++ b/arch/sparc/kernel/unaligned_64.c @@ -21,6 +21,7 @@  #include <linux/smp.h>  #include <linux/bitops.h>  #include <linux/perf_event.h> +#include <linux/ratelimit.h>  #include <asm/fpumacro.h>  enum direction { @@ -274,13 +275,9 @@ static void kernel_mna_trap_fault(int fixup_tstate_asi)  static void log_unaligned(struct pt_regs *regs)  { -	static unsigned long count, last_time; +	static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5); -	if (time_after(jiffies, last_time + 5 * HZ)) -		count = 0; -	if (count < 5) { -		last_time = jiffies; -		count++; +	if (__ratelimit(&ratelimit)) {  		printk("Kernel unaligned access at TPC[%lx] %pS\n",  		       regs->tpc, (void *) regs->tpc);  	} @@ -636,7 +633,6 @@ daex:  		return;  	}  	advance(regs); -	return;  }  void handle_stdfmna(struct pt_regs *regs, unsigned long sfar, unsigned long sfsr) @@ -685,5 +681,4 @@ daex:  		return;  	}  	advance(regs); -	return;  }  |