kvm: selftests: aarch64: fix assert in gicv3_access_reg
authorRicardo Koller <ricarkol@google.com>
Thu, 27 Jan 2022 03:08:54 +0000 (19:08 -0800)
committerMarc Zyngier <maz@kernel.org>
Tue, 8 Feb 2022 15:18:58 +0000 (15:18 +0000)
The val argument in gicv3_access_reg can have any value when used for a
read, not necessarily 0.  Fix the assert by checking val only for
writes.

Signed-off-by: Ricardo Koller <ricarkol@google.com>
Reported-by: Reiji Watanabe <reijiw@google.com>
Cc: Andrew Jones <drjones@redhat.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220127030858.3269036-2-ricarkol@google.com
tools/testing/selftests/kvm/lib/aarch64/gic_v3.c

index 00f613c..e4945fe 100644 (file)
@@ -159,7 +159,7 @@ static void gicv3_access_reg(uint32_t intid, uint64_t offset,
        uint32_t cpu_or_dist;
 
        GUEST_ASSERT(bits_per_field <= reg_bits);
-       GUEST_ASSERT(*val < (1U << bits_per_field));
+       GUEST_ASSERT(!write || *val < (1U << bits_per_field));
        /* Some registers like IROUTER are 64 bit long. Those are currently not
         * supported by readl nor writel, so just asserting here until then.
         */