Dirtying the CC allows us to find missing CC changes when sclp is emulated. Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> --- s390x/sclp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/s390x/sclp.c b/s390x/sclp.c index 1abb9029..bc6477eb 100644 --- a/s390x/sclp.c +++ b/s390x/sclp.c @@ -399,6 +399,7 @@ out: static void test_instbits(void) { SCCBHeader *h = (SCCBHeader *)pagebuf; + uint64_t spm_cc = 1 << SPM_CC_SHIFT; int cc; sclp_mark_busy(); @@ -406,10 +407,12 @@ static void test_instbits(void) sclp_setup_int(); asm volatile( + " spm %[spm_cc]\n" " .insn rre,0xb2204200,%1,%2\n" /* servc %1,%2 */ " ipm %0\n" " srl %0,28" - : "=&d" (cc) : "d" (valid_code), "a" (__pa(pagebuf)) + : "=&d" (cc) + : "d" (valid_code), "a" (__pa(pagebuf)), [spm_cc] "d" (spm_cc) : "cc", "memory"); /* No exception, but also no command accepted, so no interrupt is * expected. We need to clear the flag manually otherwise we will -- 2.40.1