In case of an error when updating the routing table entries, irq__update_msix_route() uses perror to print an error message. gicv2m_update_routing() doesn't set errno, and instead returns the value that errno should have had, which can lead to failure messages like this: KVM_SET_GSI_ROUTING: Success Set errno in gicv2m_update_routing() to avoid such messages in the future. Reviewed-by: Andre Przywara <andre.przywara@xxxxxxx> Signed-off-by: Alexandru Elisei <alexandru.elisei@xxxxxxx> --- arm/gicv2m.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/arm/gicv2m.c b/arm/gicv2m.c index d7e6398..b47ada8 100644 --- a/arm/gicv2m.c +++ b/arm/gicv2m.c @@ -42,16 +42,18 @@ static int gicv2m_update_routing(struct kvm *kvm, { int spi; - if (entry->type != KVM_IRQ_ROUTING_MSI) - return -EINVAL; + if (entry->type != KVM_IRQ_ROUTING_MSI) { + errno = EINVAL; + return -errno; + } if (!entry->u.msi.address_hi && !entry->u.msi.address_lo) return 0; spi = entry->u.msi.data & GICV2M_SPI_MASK; if (spi < v2m.first_spi || spi >= v2m.first_spi + v2m.num_spis) { - pr_err("invalid SPI number %d", spi); - return -EINVAL; + errno = EINVAL; + return -errno; } v2m.spis[spi - v2m.first_spi] = entry->gsi; -- 2.20.1