mirror of
https://github.com/torvalds/linux
synced 2024-10-05 19:02:12 +00:00
kvm: selftests: aarch64: use a tighter assert in vgic_poke_irq()
vgic_poke_irq() checks that the attr argument passed to the vgic device ioctl is sane. Make this check tighter by moving it to after the last attr update. 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-6-ricarkol@google.com
This commit is contained in:
parent
a5cd38fd9c
commit
b53de63a89
|
@ -138,9 +138,6 @@ static void vgic_poke_irq(int gic_fd, uint32_t intid,
|
|||
uint64_t val;
|
||||
bool intid_is_private = INTID_IS_SGI(intid) || INTID_IS_PPI(intid);
|
||||
|
||||
/* Check that the addr part of the attr is within 32 bits. */
|
||||
assert(attr <= KVM_DEV_ARM_VGIC_OFFSET_MASK);
|
||||
|
||||
uint32_t group = intid_is_private ? KVM_DEV_ARM_VGIC_GRP_REDIST_REGS
|
||||
: KVM_DEV_ARM_VGIC_GRP_DIST_REGS;
|
||||
|
||||
|
@ -150,6 +147,9 @@ static void vgic_poke_irq(int gic_fd, uint32_t intid,
|
|||
attr += SZ_64K;
|
||||
}
|
||||
|
||||
/* Check that the addr part of the attr is within 32 bits. */
|
||||
assert((attr & ~KVM_DEV_ARM_VGIC_OFFSET_MASK) == 0);
|
||||
|
||||
/*
|
||||
* All calls will succeed, even with invalid intid's, as long as the
|
||||
* addr part of the attr is within 32 bits (checked above). An invalid
|
||||
|
|
Loading…
Reference in a new issue