Commit 7619c7b0 authored by Michael Roth's avatar Michael Roth Committed by Alexander Graf
Browse files

spapr_pci: add dynamic-reconfiguration option for spapr-pci-host-bridge



This option enables/disables PCI hotplug for a particular PHB.

Also add machine compatibility code to disable it by default for machine
types prior to pseries-2.4.

Signed-off-by: default avatarMichael Roth <mdroth@linux.vnet.ibm.com>
Reviewed-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
[agraf: move commas for compat fields]
Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
parent e4b798bb
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1823,7 +1823,12 @@ static const TypeInfo spapr_machine_info = {
};

#define SPAPR_COMPAT_2_3 \
        HW_COMPAT_2_3
        HW_COMPAT_2_3 \
        {\
            .driver   = "spapr-pci-host-bridge",\
            .property = "dynamic-reconfiguration",\
            .value    = "off",\
        },

#define SPAPR_COMPAT_2_2 \
        SPAPR_COMPAT_2_3 \
@@ -1913,7 +1918,7 @@ static const TypeInfo spapr_machine_2_2_info = {
static void spapr_machine_2_3_class_init(ObjectClass *oc, void *data)
{
    static GlobalProperty compat_props[] = {
        /* SPAPR_COMPAT_2_3, */
        SPAPR_COMPAT_2_3
        { /* end of list */ }
    };
    MachineClass *mc = MACHINE_CLASS(oc);
+2 −0
Original line number Diff line number Diff line
@@ -936,6 +936,8 @@ static Property spapr_phb_properties[] = {
    DEFINE_PROP_UINT64("io_win_addr", sPAPRPHBState, io_win_addr, -1),
    DEFINE_PROP_UINT64("io_win_size", sPAPRPHBState, io_win_size,
                       SPAPR_PCI_IO_WIN_SIZE),
    DEFINE_PROP_BOOL("dynamic-reconfiguration", sPAPRPHBState, dr_enabled,
                     true),
    DEFINE_PROP_END_OF_LIST(),
};

+1 −0
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ struct sPAPRPHBState {
    uint32_t index;
    uint64_t buid;
    char *dtbusname;
    bool dr_enabled;

    MemoryRegion memspace, iospace;
    hwaddr mem_win_addr, mem_win_size, io_win_addr, io_win_size;