On Tue, 29 Jun 2021 13:33:22 +0000 Janosch Frank <frankja@xxxxxxxxxxxxx> wrote: > For debugging it helps if you know if the PGM happened while being in > SIE or not. > > Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> Reviewed-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> I agree with Conny regarding the style, unless you want to extend the SIE printf to provide more information (maybe about the guest?) > --- > lib/s390x/interrupt.c | 17 ++++++++++++++--- > 1 file changed, 14 insertions(+), 3 deletions(-) > > diff --git a/lib/s390x/interrupt.c b/lib/s390x/interrupt.c > index b627942..76015b1 100644 > --- a/lib/s390x/interrupt.c > +++ b/lib/s390x/interrupt.c > @@ -141,10 +141,21 @@ static void print_int_regs(struct > stack_frame_int *stack) static void print_pgm_info(struct > stack_frame_int *stack) > { > + bool in_sie; > + > + in_sie = (lc->pgm_old_psw.addr >= (uintptr_t)sie_entry && > + lc->pgm_old_psw.addr <= (uintptr_t)sie_exit); > + > printf("\n"); > - printf("Unexpected program interrupt: %d on cpu %d at %#lx, > ilen %d\n", > - lc->pgm_int_code, stap(), lc->pgm_old_psw.addr, > - lc->pgm_int_id); > + if (!in_sie) > + printf("Unexpected program interrupt: %d on cpu %d > at %#lx, ilen %d\n", > + lc->pgm_int_code, stap(), > lc->pgm_old_psw.addr, > + lc->pgm_int_id); > + else > + printf("Unexpected program interrupt in SIE: %d on > cpu %d at %#lx, ilen %d\n", > + lc->pgm_int_code, stap(), > lc->pgm_old_psw.addr, > + lc->pgm_int_id); > + > print_int_regs(stack); > dump_stack(); > report_summary();