Skip to content

Commit

Permalink
Merge remote-tracking branch 'remotes/ehabkost/tags/machine-next-pull…
Browse files Browse the repository at this point in the history
…-request' into staging

Machine queue 2020-08-19

Regular post-release changes:
* hw: add compat machines for 5.2 (Cornelia Huck)

Features:
* qmp: Expose MachineClass::default_ram_id
  (Michal Privoznik)

Cleanups:
* qdev: Document qdev_prop_set_drive_err() return value
  (Philippe Mathieu-Daudé)

# gpg: Signature made Wed 19 Aug 2020 16:21:55 BST
# gpg:                using RSA key 5A322FD5ABC4D3DBACCFD1AA2807936F984DC5A6
# gpg:                issuer "ehabkost@redhat.com"
# gpg: Good signature from "Eduardo Habkost <ehabkost@redhat.com>" [full]
# Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF  D1AA 2807 936F 984D C5A6

* remotes/ehabkost/tags/machine-next-pull-request:
  hw: add compat machines for 5.2
  qmp: Expose MachineClass::default_ram_id
  qdev: Document qdev_prop_set_drive_err() return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
  • Loading branch information
pm215 committed Aug 22, 2020
2 parents e7b4f70 + 3ff3c5d commit ca489cd
Show file tree
Hide file tree
Showing 12 changed files with 81 additions and 7 deletions.
9 changes: 8 additions & 1 deletion hw/arm/virt.c
Expand Up @@ -2546,10 +2546,17 @@ static void machvirt_machine_init(void)
}
type_init(machvirt_machine_init);

static void virt_machine_5_2_options(MachineClass *mc)
{
}
DEFINE_VIRT_MACHINE_AS_LATEST(5, 2)

static void virt_machine_5_1_options(MachineClass *mc)
{
virt_machine_5_2_options(mc);
compat_props_add(mc->compat_props, hw_compat_5_1, hw_compat_5_1_len);
}
DEFINE_VIRT_MACHINE_AS_LATEST(5, 1)
DEFINE_VIRT_MACHINE(5, 1)

static void virt_machine_5_0_options(MachineClass *mc)
{
Expand Down
4 changes: 4 additions & 0 deletions hw/core/machine-qmp-cmds.c
Expand Up @@ -238,6 +238,10 @@ MachineInfoList *qmp_query_machines(Error **errp)
info->default_cpu_type = g_strdup(mc->default_cpu_type);
info->has_default_cpu_type = true;
}
if (mc->default_ram_id) {
info->default_ram_id = g_strdup(mc->default_ram_id);
info->has_default_ram_id = true;
}

entry = g_malloc0(sizeof(*entry));
entry->value = info;
Expand Down
3 changes: 3 additions & 0 deletions hw/core/machine.c
Expand Up @@ -28,6 +28,9 @@
#include "hw/mem/nvdimm.h"
#include "migration/vmstate.h"

GlobalProperty hw_compat_5_1[] = {};
const size_t hw_compat_5_1_len = G_N_ELEMENTS(hw_compat_5_1);

GlobalProperty hw_compat_5_0[] = {
{ "pci-host-bridge", "x-config-reg-migration-enabled", "off" },
{ "virtio-balloon-device", "page-poison", "false" },
Expand Down
3 changes: 3 additions & 0 deletions hw/i386/pc.c
Expand Up @@ -97,6 +97,9 @@
#include "trace.h"
#include CONFIG_DEVICES

GlobalProperty pc_compat_5_1[] = {};
const size_t pc_compat_5_1_len = G_N_ELEMENTS(pc_compat_5_1);

GlobalProperty pc_compat_5_0[] = {
};
const size_t pc_compat_5_0_len = G_N_ELEMENTS(pc_compat_5_0);
Expand Down
14 changes: 13 additions & 1 deletion hw/i386/pc_piix.c
Expand Up @@ -426,7 +426,7 @@ static void pc_i440fx_machine_options(MachineClass *m)
machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE);
}

static void pc_i440fx_5_1_machine_options(MachineClass *m)
static void pc_i440fx_5_2_machine_options(MachineClass *m)
{
PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
pc_i440fx_machine_options(m);
Expand All @@ -435,6 +435,18 @@ static void pc_i440fx_5_1_machine_options(MachineClass *m)
pcmc->default_cpu_version = 1;
}

DEFINE_I440FX_MACHINE(v5_2, "pc-i440fx-5.2", NULL,
pc_i440fx_5_2_machine_options);

static void pc_i440fx_5_1_machine_options(MachineClass *m)
{
pc_i440fx_5_2_machine_options(m);
m->alias = NULL;
m->is_default = false;
compat_props_add(m->compat_props, hw_compat_5_1, hw_compat_5_1_len);
compat_props_add(m->compat_props, pc_compat_5_1, pc_compat_5_1_len);
}

DEFINE_I440FX_MACHINE(v5_1, "pc-i440fx-5.1", NULL,
pc_i440fx_5_1_machine_options);

Expand Down
13 changes: 12 additions & 1 deletion hw/i386/pc_q35.c
Expand Up @@ -353,14 +353,25 @@ static void pc_q35_machine_options(MachineClass *m)
m->max_cpus = 288;
}

static void pc_q35_5_1_machine_options(MachineClass *m)
static void pc_q35_5_2_machine_options(MachineClass *m)
{
PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
pc_q35_machine_options(m);
m->alias = "q35";
pcmc->default_cpu_version = 1;
}

DEFINE_Q35_MACHINE(v5_2, "pc-q35-5.2", NULL,
pc_q35_5_2_machine_options);

static void pc_q35_5_1_machine_options(MachineClass *m)
{
pc_q35_5_2_machine_options(m);
m->alias = NULL;
compat_props_add(m->compat_props, hw_compat_5_1, hw_compat_5_1_len);
compat_props_add(m->compat_props, pc_compat_5_1, pc_compat_5_1_len);
}

DEFINE_Q35_MACHINE(v5_1, "pc-q35-5.1", NULL,
pc_q35_5_1_machine_options);

Expand Down
15 changes: 13 additions & 2 deletions hw/ppc/spapr.c
Expand Up @@ -4579,15 +4579,26 @@ static void spapr_machine_latest_class_options(MachineClass *mc)
} \
type_init(spapr_machine_register_##suffix)

/*
* pseries-5.2
*/
static void spapr_machine_5_2_class_options(MachineClass *mc)
{
/* Defaults for the latest behaviour inherited from the base class */
}

DEFINE_SPAPR_MACHINE(5_2, "5.2", true);

/*
* pseries-5.1
*/
static void spapr_machine_5_1_class_options(MachineClass *mc)
{
/* Defaults for the latest behaviour inherited from the base class */
spapr_machine_5_2_class_options(mc);
compat_props_add(mc->compat_props, hw_compat_5_1, hw_compat_5_1_len);
}

DEFINE_SPAPR_MACHINE(5_1, "5.1", true);
DEFINE_SPAPR_MACHINE(5_1, "5.1", false);

/*
* pseries-5.0
Expand Down
14 changes: 13 additions & 1 deletion hw/s390x/s390-virtio-ccw.c
Expand Up @@ -801,14 +801,26 @@ bool css_migration_enabled(void)
} \
type_init(ccw_machine_register_##suffix)

static void ccw_machine_5_2_instance_options(MachineState *machine)
{
}

static void ccw_machine_5_2_class_options(MachineClass *mc)
{
}
DEFINE_CCW_MACHINE(5_2, "5.2", true);

static void ccw_machine_5_1_instance_options(MachineState *machine)
{
ccw_machine_5_2_instance_options(machine);
}

static void ccw_machine_5_1_class_options(MachineClass *mc)
{
ccw_machine_5_2_class_options(mc);
compat_props_add(mc->compat_props, hw_compat_5_1, hw_compat_5_1_len);
}
DEFINE_CCW_MACHINE(5_1, "5.1", true);
DEFINE_CCW_MACHINE(5_1, "5.1", false);

static void ccw_machine_5_0_instance_options(MachineState *machine)
{
Expand Down
3 changes: 3 additions & 0 deletions include/hw/boards.h
Expand Up @@ -319,6 +319,9 @@ struct MachineState {
} \
type_init(machine_initfn##_register_types)

extern GlobalProperty hw_compat_5_1[];
extern const size_t hw_compat_5_1_len;

extern GlobalProperty hw_compat_5_0[];
extern const size_t hw_compat_5_0_len;

Expand Down
3 changes: 3 additions & 0 deletions include/hw/i386/pc.h
Expand Up @@ -193,6 +193,9 @@ void pc_system_firmware_init(PCMachineState *pcms, MemoryRegion *rom_memory);
void pc_madt_cpu_entry(AcpiDeviceIf *adev, int uid,
const CPUArchIdList *apic_ids, GArray *entry);

extern GlobalProperty pc_compat_5_1[];
extern const size_t pc_compat_5_1_len;

extern GlobalProperty pc_compat_5_0[];
extern const size_t pc_compat_5_0_len;

Expand Down
2 changes: 2 additions & 0 deletions include/hw/qdev-properties.h
Expand Up @@ -238,6 +238,8 @@ extern const PropertyInfo qdev_prop_pcie_link_width;

/*
* Set properties between creation and realization.
*
* Returns: %true on success, %false on error.
*/
bool qdev_prop_set_drive_err(DeviceState *dev, const char *name,
BlockBackend *value, Error **errp);
Expand Down
5 changes: 4 additions & 1 deletion qapi/machine.json
Expand Up @@ -357,13 +357,16 @@
# @default-cpu-type: default CPU model typename if none is requested via
# the -cpu argument. (since 4.2)
#
# @default-ram-id: the default ID of initial RAM memory backend (since 5.2)
#
# Since: 1.2.0
##
{ 'struct': 'MachineInfo',
'data': { 'name': 'str', '*alias': 'str',
'*is-default': 'bool', 'cpu-max': 'int',
'hotpluggable-cpus': 'bool', 'numa-mem-supported': 'bool',
'deprecated': 'bool', '*default-cpu-type': 'str' } }
'deprecated': 'bool', '*default-cpu-type': 'str',
'*default-ram-id': 'str' } }

##
# @query-machines:
Expand Down

0 comments on commit ca489cd

Please sign in to comment.