Index: sys/arch/shark/isa/isa_irq.S =================================================================== RCS file: /cvsroot/src/sys/arch/shark/isa/isa_irq.S,v retrieving revision 1.16 diff -u -p -r1.16 isa_irq.S --- sys/arch/shark/isa/isa_irq.S 2 Dec 2013 18:36:11 -0000 1.16 +++ sys/arch/shark/isa/isa_irq.S 30 Jan 2018 19:20:35 -0000 @@ -182,13 +182,14 @@ ASENTRY_NP(irq_entry) * This would benefit from a special ffs type routine */ - mov r9, #(NIPL - 1) + mov r9, #NIPL ldr r5, .Lspl_masks .Lfind_highest_ipl: + subs r9, r9, 1 + blt .Lwtf ldr r2, [r5, r9, lsl #2] tst r8, r2 - subeq r9, r9, #1 beq .Lfind_highest_ipl /* r9 = SPL level of highest priority interrupt */ @@ -291,6 +292,15 @@ nextirq: /* NOT REACHED */ b . - 8 +.Lwtf: + adr r0, .Lwtf_panicmsg + mov r1, r8 + bl _C_LABEL(panic) + /* NOTREACHED */ +.Lwtf_panicmsg: + .asciz "WTF? r8=0x%08x"" + .balign 4 + .Lcurrent_mask: .word _C_LABEL(current_mask) /* irq's that are usable */