Good. This patch resolves the problem I mentioned in previous verion.
Thanks for your work. 在 2017/7/25 下午11:33, Cornelia Huck 写道:
Only set the zpci feature bit on builds that actually support pci. Signed-off-by: Cornelia Huck <coh...@redhat.com> --- hw/s390x/s390-pci-bus.c | 5 +++++ hw/s390x/s390-pci-bus.h | 1 + hw/s390x/s390-ci-stub.c | 4 ++++ target/s390x/kvm.c | 2 +- 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index c57f6ebae0..7b30d4c7bd 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -34,6 +34,11 @@ } \ } while (0) +void pci_enable_zpci_feature(S390CPUModel *model) +{ + set_bit(S390_FEAT_ZPCI, model->features); +} + S390pciState *s390_get_phb(void) { static S390pciState *phb; diff --git a/hw/s390x/s390-pci-bus.h b/hw/s390x/s390-pci-bus.h index 5df6292509..d8796536b0 100644 --- a/hw/s390x/s390-pci-bus.h +++ b/hw/s390x/s390-pci-bus.h @@ -333,4 +333,5 @@ S390PCIBusDevice *s390_pci_find_dev_by_fid(S390pciState *s, uint32_t fid); S390PCIBusDevice *s390_pci_find_next_avail_dev(S390pciState *s, S390PCIBusDevice *pbdev); +void pci_enable_zpci_feature(S390CPUModel *model); #endif diff --git a/hw/s390x/s390-pci-stub.c b/hw/s390x/s390-pci-stub.c index cc7278a865..8ceaf482e7 100644 --- a/hw/s390x/s390-pci-stub.c +++ b/hw/s390x/s390-pci-stub.c @@ -72,3 +72,7 @@ S390PCIBusDevice *s390_pci_find_dev_by_idx(S390pciState *s, uint32_t idx) { return NULL; } + +void pci_enable_zpci_feature(S390CPUModel *model) +{ +} diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index c4c5791d27..866ac3d414 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -2662,7 +2662,7 @@ void kvm_s390_get_host_cpu_model(S390CPUModel *model, Error **errp) } /* We emulate a zPCI bus and AEN, therefore we don't need HW support */ - set_bit(S390_FEAT_ZPCI, model->features); + pci_enable_zpci_feature(model); set_bit(S390_FEAT_ADAPTER_EVENT_NOTIFICATION, model->features); if (s390_known_cpu_type(cpu_type)) {