static int
x86UpdateHostModel(virCPUDefPtr guest,
- const virCPUDef *host)
+ const virCPUDef *host,
+ virCPUx86MapPtr map)
{
virCPUDefPtr updated = NULL;
size_t i;
if (!(updated = virCPUDefCopyWithoutModel(host)))
goto cleanup;
+ /* Remove non-migratable features by default */
updated->type = VIR_CPU_TYPE_GUEST;
updated->mode = VIR_CPU_MODE_CUSTOM;
- if (virCPUDefCopyModel(updated, host, true) < 0)
+ if (virCPUDefCopyModelFilter(updated, host, true,
+ x86FeatureIsMigratable, map) < 0)
goto cleanup;
if (guest->vendor_id) {
if (guest->mode == VIR_CPU_MODE_HOST_MODEL ||
guest->match == VIR_CPU_MATCH_MINIMUM)
- ret = x86UpdateHostModel(guest, host);
+ ret = x86UpdateHostModel(guest, host, map);
else
ret = 0;