Re: [PATCH 5/7] qemu-kvm: Move gsi bits from kvm_msix_vector_add to kvm_msi_add_message

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Apr 23, 2011 at 12:23:38PM +0200, Jan Kiszka wrote:
> From: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
> 
> Testing support and allocating a GSI for an MSI message is required both
> for MSI and MSI-X. At this chance, drop the aging version warning.
> 
> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>

No objection, but I do note that this means running on an old
kernel will lead to a silent failure.
stderr output is not in fact much better: I think we should
check the capability in msix_init. Care coding this up?

> ---
>  hw/msix.c  |   13 -------------
>  qemu-kvm.c |   11 +++++++++++
>  2 files changed, 11 insertions(+), 13 deletions(-)
> 
> diff --git a/hw/msix.c b/hw/msix.c
> index 1bdffb6..8c8bc18 100644
> --- a/hw/msix.c
> +++ b/hw/msix.c
> @@ -113,19 +113,6 @@ static int kvm_msix_vector_add(PCIDevice *dev, unsigned vector)
>      KVMMsiMessage *kmm = dev->msix_irq_entries + vector;
>      int r;
>  
> -    if (!kvm_has_gsi_routing()) {
> -        fprintf(stderr, "Warning: no MSI-X support found. "
> -                "At least kernel 2.6.30 is required for MSI-X support.\n"
> -               );
> -        return -EOPNOTSUPP;
> -    }
> -
> -    r = kvm_get_irq_route_gsi();
> -    if (r < 0) {
> -        fprintf(stderr, "%s: kvm_get_irq_route_gsi failed: %s\n", __func__, strerror(-r));
> -        return r;
> -    }
> -    kmm->gsi = r;
>      kvm_msix_message_from_vector(dev, vector, kmm);
>      r = kvm_msi_message_add(kmm);
>      if (r < 0) {
> diff --git a/qemu-kvm.c b/qemu-kvm.c
> index 9cbc109..7317f87 100644
> --- a/qemu-kvm.c
> +++ b/qemu-kvm.c
> @@ -984,6 +984,17 @@ static void kvm_msi_routing_entry(struct kvm_irq_routing_entry *e,
>  int kvm_msi_message_add(KVMMsiMessage *msg)
>  {
>      struct kvm_irq_routing_entry e;
> +    int ret;
> +
> +    if (!kvm_has_gsi_routing()) {
> +        return -EOPNOTSUPP;
> +    }
> +
> +    ret = kvm_get_irq_route_gsi();
> +    if (ret < 0) {
> +        return ret;
> +    }
> +    msg->gsi = ret;
>  
>      kvm_msi_routing_entry(&e, msg);
>      return kvm_add_routing_entry(&e);
> -- 
> 1.7.1
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux