Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27cc64c7 authored by David S. Miller's avatar David S. Miller
Browse files

[SPARC64]: Rate limited kernel unaligned trap logging, ala IA64.

parent 20edac8a
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -279,12 +279,21 @@ static void kernel_mna_trap_fault(void)


asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn)
asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn)
{
{
	static unsigned long count, last_time;
	enum direction dir = decode_direction(insn);
	enum direction dir = decode_direction(insn);
	int size = decode_access_size(insn);
	int size = decode_access_size(insn);


	current_thread_info()->kern_una_regs = regs;
	current_thread_info()->kern_una_regs = regs;
	current_thread_info()->kern_una_insn = insn;
	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) {
	if (!ok_for_kernel(insn) || dir == both) {
		printk("Unsupported unaligned load/store trap for kernel "
		printk("Unsupported unaligned load/store trap for kernel "
		       "at <%016lx>.\n", regs->tpc);
		       "at <%016lx>.\n", regs->tpc);