[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH RFC v2 8/9] s390x/kvm: msi route fixup for non-pci
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PATCH RFC v2 8/9] s390x/kvm: msi route fixup for non-pci |
Date: |
Tue, 18 Jul 2017 16:24:54 +0200 |
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
- [Qemu-devel] [PATCH RFC v2 1/9] kvm: remove hard dependency on pci, (continued)
- [Qemu-devel] [PATCH RFC v2 1/9] kvm: remove hard dependency on pci, Cornelia Huck, 2017/07/18
- [Qemu-devel] [PATCH RFC v2 5/9] s390x/ccw: create s390 phb conditionally, Cornelia Huck, 2017/07/18
- [Qemu-devel] [PATCH RFC v2 7/9] s390x/pci: fence off instructions for non-pci, Cornelia Huck, 2017/07/18
- [Qemu-devel] [PATCH RFC v2 8/9] s390x/kvm: msi route fixup for non-pci,
Cornelia Huck <=
- [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