On Thu, 5 Aug 2021 16:37:53 +0200 David Hildenbrand <da...@redhat.com> wrote:
> schib->pmcw.chars is 32bit, not 16bit. This fixes the kvm-unit-tests > "css" test, which fails with: > > FAIL: Channel Subsystem: measurement block format1: Unaligned MB origin: > Program interrupt: expected(21) == received(0) > > Because we end up not injecting an operand program exception. > > Fixes: a54b8ac340c2 ("css: SCHIB measurement block origin must be aligned") > Cc: Halil Pasic <pa...@linux.ibm.com> > Cc: Cornelia Huck <coh...@redhat.com> > Cc: Christian Borntraeger <borntrae...@de.ibm.com> > Cc: Richard Henderson <richard.hender...@linaro.org> > Cc: Thomas Huth <th...@redhat.com> > Cc: Pierre Morel <pmo...@linux.ibm.com> > Cc: qemu-s3...@nongnu.org > Signed-off-by: David Hildenbrand <da...@redhat.com> Reviewed-by: Halil Pasic <pa...@linux.ibm.com> > --- > target/s390x/ioinst.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/s390x/ioinst.c b/target/s390x/ioinst.c > index 4eb0a7a9f8..bdae5090bc 100644 > --- a/target/s390x/ioinst.c > +++ b/target/s390x/ioinst.c > @@ -123,7 +123,7 @@ static int ioinst_schib_valid(SCHIB *schib) > } > /* for MB format 1 bits 26-31 of word 11 must be 0 */ > /* MBA uses words 10 and 11, it means align on 2**6 */ > - if ((be16_to_cpu(schib->pmcw.chars) & PMCW_CHARS_MASK_MBFC) && > + if ((be32_to_cpu(schib->pmcw.chars) & PMCW_CHARS_MASK_MBFC) && > (be64_to_cpu(schib->mba) & 0x03fUL)) { > return 0; > }