When looking for slots suitable for a PCI device, libvirt
might need to add an extra PCI controller: for pSeries guests,
we want that extra controller to be a PHB (pci-root) rather
than a PCI bridge.
---
Better viewed with 'git diff -w'.
src/conf/domain_addr.c | 56 +++++++++--------
src/conf/domain_addr.h | 2 +
src/qemu/qemu_domain_address.c | 4 ++
.../qemuxml2argv-pseries-many-buses-1.args | 4 +-
.../qemuxml2argv-pseries-many-devices.args | 66 ++++++++++----------
tests/qemuxml2argvtest.c | 2 -
.../qemuxml2xmlout-pseries-many-buses-1.xml | 7 +--
.../qemuxml2xmlout-pseries-many-devices.xml | 71 +++++++++++-----------
tests/qemuxml2xmltest.c | 2 -
9 files changed, 110 insertions(+), 104 deletions(-)
diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c
index d173766..e6a6399 100644
--- a/src/conf/domain_addr.c
+++ b/src/conf/domain_addr.c
@@ -383,33 +383,39 @@ virDomainPCIAddressSetGrow(virDomainPCIAddressSetPtr addrs,
*/
if (flags & VIR_PCI_CONNECT_TYPE_PCI_DEVICE) {
- model = VIR_DOMAIN_CONTROLLER_MODEL_PCI_BRIDGE;
+ if (addrs->multipleRootsSupported) {
+ /* Use a pci-root controller to expand the guest's PCI
+ * topology if it supports having more than one */
+ model = VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT;
+ } else {
+ model = VIR_DOMAIN_CONTROLLER_MODEL_PCI_BRIDGE;
- /* if there aren't yet any buses that will accept a
- * pci-bridge, and the caller is asking for one, we'll need to
- * add a dmi-to-pci-bridge first.
- */
- needDMIToPCIBridge = true;
- for (i = 0; i < addrs->nbuses; i++) {
- if (addrs->buses[i].flags & VIR_PCI_CONNECT_TYPE_PCI_BRIDGE) {
- needDMIToPCIBridge = false;
- break;
- }
- }
- if (needDMIToPCIBridge && add == 1) {
- /* We need to add a single pci-bridge to provide the bus
- * our legacy PCI device will be plugged into; however, we
- * have also determined that there isn't yet any proper
- * place to connect that pci-bridge we're about to add (on
- * a system with pcie-root, that "proper place" would be a
- * dmi-to-pci-bridge". So, to give the pci-bridge a place
- * to connect, we increase the count of buses to add,
- * while also incrementing the bus number in the address
- * for the device (since the pci-bridge will now be at an
- * index 1 higher than the caller had anticipated).
+ /* if there aren't yet any buses that will accept a
+ * pci-bridge, and the caller is asking for one, we'll need to
+ * add a dmi-to-pci-bridge first.
*/
- add++;
- addr->bus++;
+ needDMIToPCIBridge = true;
+ for (i = 0; i < addrs->nbuses; i++) {
+ if (addrs->buses[i].flags & VIR_PCI_CONNECT_TYPE_PCI_BRIDGE) {
+ needDMIToPCIBridge = false;
+ break;
+ }
+ }
+ if (needDMIToPCIBridge && add == 1) {
+ /* We need to add a single pci-bridge to provide the bus
+ * our legacy PCI device will be plugged into; however, we
+ * have also determined that there isn't yet any proper
+ * place to connect that pci-bridge we're about to add (on
+ * a system with pcie-root, that "proper place" would be a
+ * dmi-to-pci-bridge". So, to give the pci-bridge a place
+ * to connect, we increase the count of buses to add,
+ * while also incrementing the bus number in the address
+ * for the device (since the pci-bridge will now be at an
+ * index 1 higher than the caller had anticipated).
+ */
+ add++;
+ addr->bus++;
+ }
}
} else if (flags & VIR_PCI_CONNECT_TYPE_PCI_BRIDGE &&
addrs->buses[0].model == VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT) {
diff --git a/src/conf/domain_addr.h b/src/conf/domain_addr.h
index 7704061..1849d2b 100644
--- a/src/conf/domain_addr.h
+++ b/src/conf/domain_addr.h
@@ -108,6 +108,8 @@ struct _virDomainPCIAddressSet {
size_t nbuses;
bool dryRun; /* on a dry run, new buses are auto-added
and addresses aren't saved in device infos */
+ /* If true, the guest can have multiple pci-root controllers */
+ bool multipleRootsSupported;
};
typedef struct _virDomainPCIAddressSet virDomainPCIAddressSet;
typedef virDomainPCIAddressSet *virDomainPCIAddressSetPtr;
diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c
index 9585fe5..08773c0 100644
--- a/src/qemu/qemu_domain_address.c
+++ b/src/qemu/qemu_domain_address.c
@@ -1056,6 +1056,10 @@ qemuDomainPCIAddressSetCreate(virDomainDefPtr def,
addrs->dryRun = dryRun;
+ /* pSeries domains support multiple pci-root controllers */
+ if (qemuDomainIsPSeries(def))
+ addrs->multipleRootsSupported = true;
+
for (i = 0; i < def->ncontrollers; i++) {
virDomainControllerDefPtr cont = def->controllers[i];
size_t idx = cont->idx;
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-1.args
b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-1.args
index bf78fc1..eb5ccbd 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-1.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-buses-1.args
@@ -18,5 +18,5 @@ QEMU_AUDIO_DRV=none \
server,nowait \
-mon chardev=charmonitor,id=monitor,mode=readline \
-boot c \
--device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1 \
--device virtio-scsi-pci,id=scsi0,bus=pci.1,addr=0x1
+-device spapr-pci-host-bridge,index=1,id=pci.1 \
+-device virtio-scsi-pci,id=scsi0,bus=pci.1.0,addr=0x1
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-devices.args
b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-devices.args
index 1db4533..f20bc52 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-devices.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-many-devices.args
@@ -18,36 +18,36 @@ QEMU_AUDIO_DRV=none \
server,nowait \
-mon chardev=charmonitor,id=monitor,mode=readline \
-boot c \
--device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1 \
--device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x2 \
--device virtio-scsi-pci,id=scsi1,bus=pci.0,addr=0x3 \
--device virtio-scsi-pci,id=scsi2,bus=pci.0,addr=0x4 \
--device virtio-scsi-pci,id=scsi3,bus=pci.0,addr=0x5 \
--device virtio-scsi-pci,id=scsi4,bus=pci.0,addr=0x6 \
--device virtio-scsi-pci,id=scsi5,bus=pci.0,addr=0x7 \
--device virtio-scsi-pci,id=scsi6,bus=pci.0,addr=0x8 \
--device virtio-scsi-pci,id=scsi7,bus=pci.0,addr=0x9 \
--device virtio-scsi-pci,id=scsi8,bus=pci.0,addr=0xa \
--device virtio-scsi-pci,id=scsi9,bus=pci.0,addr=0xb \
--device virtio-scsi-pci,id=scsi10,bus=pci.0,addr=0xc \
--device virtio-scsi-pci,id=scsi11,bus=pci.0,addr=0xd \
--device virtio-scsi-pci,id=scsi12,bus=pci.0,addr=0xe \
--device virtio-scsi-pci,id=scsi13,bus=pci.0,addr=0xf \
--device virtio-scsi-pci,id=scsi14,bus=pci.0,addr=0x10 \
--device virtio-scsi-pci,id=scsi15,bus=pci.0,addr=0x11 \
--device virtio-scsi-pci,id=scsi16,bus=pci.0,addr=0x12 \
--device virtio-scsi-pci,id=scsi17,bus=pci.0,addr=0x13 \
--device virtio-scsi-pci,id=scsi18,bus=pci.0,addr=0x14 \
--device virtio-scsi-pci,id=scsi19,bus=pci.0,addr=0x15 \
--device virtio-scsi-pci,id=scsi20,bus=pci.0,addr=0x16 \
--device virtio-scsi-pci,id=scsi21,bus=pci.0,addr=0x17 \
--device virtio-scsi-pci,id=scsi22,bus=pci.0,addr=0x18 \
--device virtio-scsi-pci,id=scsi23,bus=pci.0,addr=0x19 \
--device virtio-scsi-pci,id=scsi24,bus=pci.0,addr=0x1a \
--device virtio-scsi-pci,id=scsi25,bus=pci.0,addr=0x1b \
--device virtio-scsi-pci,id=scsi26,bus=pci.0,addr=0x1c \
--device virtio-scsi-pci,id=scsi27,bus=pci.0,addr=0x1d \
--device virtio-scsi-pci,id=scsi28,bus=pci.0,addr=0x1e \
--device virtio-scsi-pci,id=scsi29,bus=pci.0,addr=0x1f \
--device virtio-scsi-pci,id=scsi30,bus=pci.1,addr=0x1 \
--device virtio-scsi-pci,id=scsi31,bus=pci.1,addr=0x2
+-device spapr-pci-host-bridge,index=1,id=pci.1 \
+-device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x1 \
+-device virtio-scsi-pci,id=scsi1,bus=pci.0,addr=0x2 \
+-device virtio-scsi-pci,id=scsi2,bus=pci.0,addr=0x3 \
+-device virtio-scsi-pci,id=scsi3,bus=pci.0,addr=0x4 \
+-device virtio-scsi-pci,id=scsi4,bus=pci.0,addr=0x5 \
+-device virtio-scsi-pci,id=scsi5,bus=pci.0,addr=0x6 \
+-device virtio-scsi-pci,id=scsi6,bus=pci.0,addr=0x7 \
+-device virtio-scsi-pci,id=scsi7,bus=pci.0,addr=0x8 \
+-device virtio-scsi-pci,id=scsi8,bus=pci.0,addr=0x9 \
+-device virtio-scsi-pci,id=scsi9,bus=pci.0,addr=0xa \
+-device virtio-scsi-pci,id=scsi10,bus=pci.0,addr=0xb \
+-device virtio-scsi-pci,id=scsi11,bus=pci.0,addr=0xc \
+-device virtio-scsi-pci,id=scsi12,bus=pci.0,addr=0xd \
+-device virtio-scsi-pci,id=scsi13,bus=pci.0,addr=0xe \
+-device virtio-scsi-pci,id=scsi14,bus=pci.0,addr=0xf \
+-device virtio-scsi-pci,id=scsi15,bus=pci.0,addr=0x10 \
+-device virtio-scsi-pci,id=scsi16,bus=pci.0,addr=0x11 \
+-device virtio-scsi-pci,id=scsi17,bus=pci.0,addr=0x12 \
+-device virtio-scsi-pci,id=scsi18,bus=pci.0,addr=0x13 \
+-device virtio-scsi-pci,id=scsi19,bus=pci.0,addr=0x14 \
+-device virtio-scsi-pci,id=scsi20,bus=pci.0,addr=0x15 \
+-device virtio-scsi-pci,id=scsi21,bus=pci.0,addr=0x16 \
+-device virtio-scsi-pci,id=scsi22,bus=pci.0,addr=0x17 \
+-device virtio-scsi-pci,id=scsi23,bus=pci.0,addr=0x18 \
+-device virtio-scsi-pci,id=scsi24,bus=pci.0,addr=0x19 \
+-device virtio-scsi-pci,id=scsi25,bus=pci.0,addr=0x1a \
+-device virtio-scsi-pci,id=scsi26,bus=pci.0,addr=0x1b \
+-device virtio-scsi-pci,id=scsi27,bus=pci.0,addr=0x1c \
+-device virtio-scsi-pci,id=scsi28,bus=pci.0,addr=0x1d \
+-device virtio-scsi-pci,id=scsi29,bus=pci.0,addr=0x1e \
+-device virtio-scsi-pci,id=scsi30,bus=pci.0,addr=0x1f \
+-device virtio-scsi-pci,id=scsi31,bus=pci.1.0,addr=0x1
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 7a6acd5..296c93b 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1706,12 +1706,10 @@ mymain(void)
DO_TEST("pseries-many-devices",
QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
- QEMU_CAPS_DEVICE_PCI_BRIDGE,
QEMU_CAPS_VIRTIO_SCSI);
DO_TEST("pseries-many-buses-1",
QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
- QEMU_CAPS_DEVICE_PCI_BRIDGE,
QEMU_CAPS_VIRTIO_SCSI);
DO_TEST("pseries-many-buses-2",
QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-buses-1.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-buses-1.xml
index 010a3be..1b2845d 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-buses-1.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-buses-1.xml
@@ -22,10 +22,9 @@
<address type='pci' domain='0x0000' bus='0x01'
slot='0x01' function='0x0'/>
</controller>
<controller type='usb' index='0' model='none'/>
- <controller type='pci' index='1' model='pci-bridge'>
- <model name='pci-bridge'/>
- <target chassisNr='1'/>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x01' function='0x0'/>
+ <controller type='pci' index='1' model='pci-root'>
+ <model name='spapr-pci-host-bridge'/>
+ <target index='1'/>
</controller>
<memballoon model='none'/>
<panic model='pseries'/>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-devices.xml
b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-devices.xml
index 336373b..5a78590 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-devices.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-many-devices.xml
@@ -19,106 +19,105 @@
<target index='0'/>
</controller>
<controller type='scsi' index='0' model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x02' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x01' function='0x0'/>
</controller>
<controller type='scsi' index='1' model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x03' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x02' function='0x0'/>
</controller>
<controller type='scsi' index='2' model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x04' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x03' function='0x0'/>
</controller>
<controller type='scsi' index='3' model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x05' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x04' function='0x0'/>
</controller>
<controller type='scsi' index='4' model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x06' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x05' function='0x0'/>
</controller>
<controller type='scsi' index='5' model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x07' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x06' function='0x0'/>
</controller>
<controller type='scsi' index='6' model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x08' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x07' function='0x0'/>
</controller>
<controller type='scsi' index='7' model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x09' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x08' function='0x0'/>
</controller>
<controller type='scsi' index='8' model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x0a' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x09' function='0x0'/>
</controller>
<controller type='scsi' index='9' model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x0b' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x0a' function='0x0'/>
</controller>
<controller type='scsi' index='10'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x0c' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x0b' function='0x0'/>
</controller>
<controller type='scsi' index='11'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x0d' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x0c' function='0x0'/>
</controller>
<controller type='scsi' index='12'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x0e' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x0d' function='0x0'/>
</controller>
<controller type='scsi' index='13'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x0f' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x0e' function='0x0'/>
</controller>
<controller type='scsi' index='14'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x10' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x0f' function='0x0'/>
</controller>
<controller type='scsi' index='15'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x11' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x10' function='0x0'/>
</controller>
<controller type='scsi' index='16'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x12' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x11' function='0x0'/>
</controller>
<controller type='scsi' index='17'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x13' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x12' function='0x0'/>
</controller>
<controller type='scsi' index='18'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x14' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x13' function='0x0'/>
</controller>
<controller type='scsi' index='19'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x15' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x14' function='0x0'/>
</controller>
<controller type='scsi' index='20'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x16' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x15' function='0x0'/>
</controller>
<controller type='scsi' index='21'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x17' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x16' function='0x0'/>
</controller>
<controller type='scsi' index='22'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x18' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x17' function='0x0'/>
</controller>
<controller type='scsi' index='23'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x19' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x18' function='0x0'/>
</controller>
<controller type='scsi' index='24'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x1a' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x19' function='0x0'/>
</controller>
<controller type='scsi' index='25'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x1b' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x1a' function='0x0'/>
</controller>
<controller type='scsi' index='26'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x1c' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x1b' function='0x0'/>
</controller>
<controller type='scsi' index='27'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x1d' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x1c' function='0x0'/>
</controller>
<controller type='scsi' index='28'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x1e' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x1d' function='0x0'/>
</controller>
<controller type='scsi' index='29'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x1f' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x1e' function='0x0'/>
</controller>
<controller type='scsi' index='30'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x01'
slot='0x01' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x1f' function='0x0'/>
</controller>
<controller type='scsi' index='31'
model='virtio-scsi'>
- <address type='pci' domain='0x0000' bus='0x01'
slot='0x02' function='0x0'/>
+ <address type='pci' domain='0x0000' bus='0x01'
slot='0x01' function='0x0'/>
</controller>
<controller type='usb' index='0' model='none'/>
- <controller type='pci' index='1' model='pci-bridge'>
- <model name='pci-bridge'/>
- <target chassisNr='1'/>
- <address type='pci' domain='0x0000' bus='0x00'
slot='0x01' function='0x0'/>
+ <controller type='pci' index='1' model='pci-root'>
+ <model name='spapr-pci-host-bridge'/>
+ <target index='1'/>
</controller>
<memballoon model='none'/>
<panic model='pseries'/>
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index b75807c..15ac744 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -680,12 +680,10 @@ mymain(void)
DO_TEST("pseries-many-devices",
QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
- QEMU_CAPS_DEVICE_PCI_BRIDGE,
QEMU_CAPS_VIRTIO_SCSI);
DO_TEST("pseries-many-buses-1",
QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE,
- QEMU_CAPS_DEVICE_PCI_BRIDGE,
QEMU_CAPS_VIRTIO_SCSI);
DO_TEST("pseries-many-buses-2",
QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG,
--
2.7.5