Re: [RFC] rust: kernel: Add KUnit tests for ARCH_WARN_ASM bug table emission

From: Mukesh Kumar Chaurasiya

Date: Fri Sep 25 2026 - 02:37:33 EST


On Thu, Sep 24, 2026 at 05:13:35PM +0200, Heiko Carstens wrote:
> On Thu, Sep 24, 2026 at 01:15:57PM +0200, Peter Zijlstra wrote:
> > Untested thingies for arm64 and s390x.
> ...
> > diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c
> > index b6ba4465f59d..8bbb082fd5e3 100644
> > --- a/arch/s390/kernel/traps.c
> > +++ b/arch/s390/kernel/traps.c
> > @@ -26,6 +26,7 @@
> > #include <linux/entry-common.h>
> > #include <linux/kmsan.h>
> > #include <linux/bug.h>
> > +#include <linux/uaccess.h>
> > #include <asm/entry-percpu.h>
> > #include <asm/asm-extable.h>
> > #include <asm/irqflags.h>
> > @@ -55,7 +56,12 @@ static inline void __user *get_trap_ip(struct pt_regs *regs)
> > #ifdef CONFIG_GENERIC_BUG
> > int is_valid_bugaddr(unsigned long addr)
> > {
> > - return 1;
> > + u16 insn;
> > +
> > + if (get_kernel_nofault(insn, (u16 *)addr))
> > + return 0;
> > +
> > + return insn == 0x0001 || insn == 0x000e;
>
> I have no idea why anybody wants to do this, but it looks like I'm not
> alone :) In any case: the check is wrong.
> s390 uses only the monitor call instruction and this should be
>
> return insn == 0xaf00;
>
> At least it is not possible to set a kprobe on bug instructions, which
> would make this "interesting".

Hey Heiko,

should i send this out along with ppc. I am not paricularly very good
with s390's assembly, but if this looks correct to you, i can send it
out.

Regards,
Mukesh