[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC v2 8/9] s390x/kvm: msi route fixup for non-p
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH RFC v2 8/9] s390x/kvm: msi route fixup for non-pci |
Date: |
Tue, 18 Jul 2017 11:58:08 -0300 |
Hi Cornelia,
On Tue, Jul 18, 2017 at 11:24 AM, Cornelia Huck <address@hidden> wrote:
> If we don't provide pci, we cannot have a pci device for which we
> have to translate to adapter routes: just return -ENODEV.
>
> Signed-off-by: Cornelia Huck <address@hidden>
> ---
> target/s390x/kvm.c | 33 +++++++++++++++++++--------------
> 1 file changed, 19 insertions(+), 14 deletions(-)
>
> diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
> index 60688888c3..df0e5af151 100644
> --- a/target/s390x/kvm.c
> +++ b/target/s390x/kvm.c
> @@ -2424,22 +2424,27 @@ int kvm_arch_fixup_msi_route(struct
> kvm_irq_routing_entry *route,
> uint32_t idx = data >> ZPCI_MSI_VEC_BITS;
> uint32_t vec = data & ZPCI_MSI_VEC_MASK;
>
> - pbdev = s390_pci_find_dev_by_idx(s390_get_phb(), idx);
> - if (!pbdev) {
> - DPRINTF("add_msi_route no dev\n");
> - return -ENODEV;
> - }
> + if (s390_has_feat(S390_FEAT_ZPCI)) {
> + pbdev = s390_pci_find_dev_by_idx(s390_get_phb(), idx);
> + if (!pbdev) {
> + DPRINTF("add_msi_route no dev\n");
> + return -ENODEV;
> + }
>
> - pbdev->routes.adapter.ind_offset = vec;
> + pbdev->routes.adapter.ind_offset = vec;
>
> - route->type = KVM_IRQ_ROUTING_S390_ADAPTER;
> - route->flags = 0;
> - route->u.adapter.summary_addr = pbdev->routes.adapter.summary_addr;
> - route->u.adapter.ind_addr = pbdev->routes.adapter.ind_addr;
> - route->u.adapter.summary_offset = pbdev->routes.adapter.summary_offset;
> - route->u.adapter.ind_offset = pbdev->routes.adapter.ind_offset;
> - route->u.adapter.adapter_id = pbdev->routes.adapter.adapter_id;
> - return 0;
> + route->type = KVM_IRQ_ROUTING_S390_ADAPTER;
> + route->flags = 0;
> + route->u.adapter.summary_addr = pbdev->routes.adapter.summary_addr;
> + route->u.adapter.ind_addr = pbdev->routes.adapter.ind_addr;
> + route->u.adapter.summary_offset =
> pbdev->routes.adapter.summary_offset;
> + route->u.adapter.ind_offset = pbdev->routes.adapter.ind_offset;
> + route->u.adapter.adapter_id = pbdev->routes.adapter.adapter_id;
> + return 0;
> + } else {
> + DPRINTF("fixup_msi_route on non-pci machine?!\n");
> + return -ENODEV;
> + }
> }
>
> int kvm_arch_add_msi_route_post(struct kvm_irq_routing_entry *route,
> --
> 2.13.3
What about inverting the check?
+ if (!s390_has_feat(S390_FEAT_ZPCI)) {
+ DPRINTF("fixup_msi_route on non-pci machine?!\n");
+ return -ENODEV;
+ }
Phil.
- [Qemu-devel] [PATCH RFC v2 1/9] kvm: remove hard dependency on pci, (continued)
Re: [Qemu-devel] [PATCH RFC v2 8/9] s390x/kvm: msi route fixup for non-pci, Yi Min Zhao, 2017/07/18
[Qemu-devel] [PATCH RFC v2 9/9] s390x: refine pci dependencies, Cornelia Huck, 2017/07/18
[Qemu-devel] [PATCH RFC v2 6/9] s390x/sclp: properly guard pci-specific functions, Cornelia Huck, 2017/07/18
Re: [Qemu-devel] [PATCH RFC v2 0/9] s390x: zPCI detangling, no-reply, 2017/07/18