parisc: Show kernel unaligned memory accesses
authorHelge Deller <deller@gmx.de>
Mon, 22 Jan 2024 22:15:48 +0000 (23:15 +0100)
committerHelge Deller <deller@gmx.de>
Tue, 27 Feb 2024 21:51:44 +0000 (22:51 +0100)
Warn if some kernel function triggers unaligned memory accesses.

Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/kernel/unaligned.c

index c520e551a165258609cba5e068037493bd7e57a8..95a2741f26f3ed016185eb7558f5b1da5a0ca9fb 100644 (file)
@@ -399,6 +399,13 @@ void handle_unaligned(struct pt_regs *regs)
 
                if (!unaligned_enabled)
                        goto force_sigbus;
+       } else {
+               static DEFINE_RATELIMIT_STATE(kernel_ratelimit, 5 * HZ, 5);
+               if (!(current->thread.flags & PARISC_UAC_NOPRINT) &&
+                       __ratelimit(&kernel_ratelimit))
+                       pr_warn("Kernel: unaligned access to " RFMT " in %pS "
+                                       "(iir " RFMT ")\n",
+                               regs->ior, (void *)regs->iaoq[0], regs->iir);
        }
 
        /* handle modification - OK, it's ugly, see the instruction manual */