From: Janosch Frank <frankja@xxxxxxxxxxxxx> Rather than asserting, we can return a value that's designated as a programming only value to indicate that there has been no validity. The SIE instruction will never write 0xffff as a validity code so let's just use that constant. Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> Reviewed-by: Nico Boehr <nrb@xxxxxxxxxxxxx> Link: https://lore.kernel.org/r/20230619083329.22680-2-frankja@xxxxxxxxxxxxx Signed-off-by: Nico Boehr <nrb@xxxxxxxxxxxxx> --- lib/s390x/sie.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/s390x/sie.c b/lib/s390x/sie.c index 9241b4b..b44febd 100644 --- a/lib/s390x/sie.c +++ b/lib/s390x/sie.c @@ -23,7 +23,13 @@ void sie_expect_validity(struct vm *vm) uint16_t sie_get_validity(struct vm *vm) { - assert(vm->sblk->icptcode == ICPT_VALIDITY); + /* + * 0xffff will never be returned by SIE, so we can indicate a + * missing validity via this value. + */ + if (vm->sblk->icptcode != ICPT_VALIDITY) + return 0xffff; + return vm->sblk->ipb >> 16; } -- 2.41.0