From 88c3ceb3bf2887a6449506bb6860627f3f2de8c4 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Wed, 21 Jun 2006 22:31:08 -0700 Subject: [PATCH] --- yaml --- r: 29553 b: refs/heads/master c: 27cc64c7cc9e41788e53655c717aeca2f55f2041 h: refs/heads/master i: 29551: c4bedd464c04b4814ade152b472d6d321c12f7c0 v: v3 --- [refs] | 2 +- trunk/arch/sparc64/kernel/unaligned.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 4f947718cd2a..13bde89f85de 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 20edac8ad487b784a286c1e59cc24819cb8d3b86 +refs/heads/master: 27cc64c7cc9e41788e53655c717aeca2f55f2041 diff --git a/trunk/arch/sparc64/kernel/unaligned.c b/trunk/arch/sparc64/kernel/unaligned.c index 001e8518331f..bb2d68577855 100644 --- a/trunk/arch/sparc64/kernel/unaligned.c +++ b/trunk/arch/sparc64/kernel/unaligned.c @@ -279,12 +279,21 @@ static void kernel_mna_trap_fault(void) asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn) { + static unsigned long count, last_time; enum direction dir = decode_direction(insn); int size = decode_access_size(insn); current_thread_info()->kern_una_regs = regs; current_thread_info()->kern_una_insn = insn; + if (jiffies - last_time > 5 * HZ) + count = 0; + if (count < 5) { + last_time = jiffies; + count++; + printk("Kernel unaligned access at TPC[%lx]\n", regs->tpc); + } + if (!ok_for_kernel(insn) || dir == both) { printk("Unsupported unaligned load/store trap for kernel " "at <%016lx>.\n", regs->tpc);