mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-03 10:43:28 +00:00
pseries: Don't expose PCIe extended config space on older machine types
bb9986452 "spapr_pci: Advertise access to PCIe extended config space" allowed guests to access the extended config space of PCI Express devices via the PAPR interfaces, even though the paravirtualized bus mostly acts like plain PCI. However, that patch enabled access unconditionally, including for existing machine types, which is an unwise change in behaviour. This patch limits the change to pseries-2.9 (and later) machine types. Suggested-by: Andrea Bolognani <abologna@redhat.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
38a61d3487
commit
82516263ce
@ -3163,8 +3163,13 @@ DEFINE_SPAPR_MACHINE(2_9, "2.9", true);
|
||||
/*
|
||||
* pseries-2.8
|
||||
*/
|
||||
#define SPAPR_COMPAT_2_8 \
|
||||
HW_COMPAT_2_8
|
||||
#define SPAPR_COMPAT_2_8 \
|
||||
HW_COMPAT_2_8 \
|
||||
{ \
|
||||
.driver = TYPE_SPAPR_PCI_HOST_BRIDGE, \
|
||||
.property = "pcie-extended-configuration-space", \
|
||||
.value = "off", \
|
||||
},
|
||||
|
||||
static void spapr_machine_2_8_instance_options(MachineState *machine)
|
||||
{
|
||||
|
@ -1321,7 +1321,7 @@ static int spapr_populate_pci_child_dt(PCIDevice *dev, void *fdt, int offset,
|
||||
_FDT(fdt_setprop(fdt, offset, "assigned-addresses",
|
||||
(uint8_t *)rp.assigned, rp.assigned_len));
|
||||
|
||||
if (pci_is_express(dev)) {
|
||||
if (sphb->pcie_ecs && pci_is_express(dev)) {
|
||||
_FDT(fdt_setprop_cell(fdt, offset, "ibm,pci-config-space-type", 0x1));
|
||||
}
|
||||
|
||||
@ -1858,6 +1858,8 @@ static Property spapr_phb_properties[] = {
|
||||
DEFINE_PROP_UINT32("numa_node", sPAPRPHBState, numa_node, -1),
|
||||
DEFINE_PROP_BOOL("pre-2.8-migration", sPAPRPHBState,
|
||||
pre_2_8_migration, false),
|
||||
DEFINE_PROP_BOOL("pcie-extended-configuration-space", sPAPRPHBState,
|
||||
pcie_ecs, true),
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
};
|
||||
|
||||
|
@ -80,6 +80,8 @@ struct sPAPRPHBState {
|
||||
|
||||
uint32_t numa_node;
|
||||
|
||||
bool pcie_ecs; /* Allow access to PCIe extended config space? */
|
||||
|
||||
/* Fields for migration compatibility hacks */
|
||||
bool pre_2_8_migration;
|
||||
uint32_t mig_liobn;
|
||||
|
Loading…
x
Reference in New Issue
Block a user