On Mon, 13 Jan 2020 15:43:28 +0100 David Hildenbrand <david@xxxxxxxxxx> wrote: > On 13.01.20 15:05, Claudio Imbrenda wrote: > > On Mon, 13 Jan 2020 14:10:10 +0100 > > David Hildenbrand <david@xxxxxxxxxx> wrote: > > > > [...] > > > >> :) I'm confused by the fact that you "expect_pgm_int()" but > >> actually don't expect one ... > >> > >> Please enlighten me why this isn't > >> > >> + sclp_mark_busy(); > >> + h->length = 8; > >> + sclp_setup_int(); > >> + > >> + asm volatile( > >> + " .insn rre,0xb2204200,%1,%2\n" /* servc > >> %1,%2 */ > >> + " ipm %0\n" > >> + " srl %0,28" > >> + : "=&d" (cc) : "d" (valid_code), "a" > >> (__pa(pagebuf)) > >> + : "cc", "memory"); > >> + if (!cc) > >> + sclp_wait_busy(); > >> + report(cc == 0, "Instruction format ignored bits"); > >> > >> I feel like I am missing something important. > > > > because if we take an unexpected pgm interrupt: > > * the interrupt handler will write stuff on the console using SCLP > > * it will wait for the busy flag to be cleared before doing so > > * thus it will hang. > > > > this would be solved by adding special logic to the pgm interrupt > > handler (as we have discussed in your previous email) > > > > I see, so the issue should hold for all SCLP checks where we don't > expect an exception ... hmmm which is why my wrapper in the unit test is so complicated :)