On Fri, 3 Jun 2022 17:40:37 +0200 Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> wrote: > 0x1200 */ diff --git a/lib/s390x/interrupt.c b/lib/s390x/interrupt.c > index 27d3b767..e57946f0 100644 [...] > @@ -30,7 +27,7 @@ void expect_pgm_int(void) > > void expect_ext_int(void) > { > - ext_int_expected = true; > + lc->ext_int_expected = 1; External Interrupts can be floating; so if I am not mistaken it could be delivered to a different CPU which didn't expect it. [...] > @@ -237,17 +231,17 @@ void handle_io_int(void) > > int register_io_int_func(void (*f)(void)) > { > - if (io_int_func) > + if (lc->io_int_func) > return -1; IO interrupts also are floating. Same concern as for the external interrupts.