diff --git a/lib/launch-direct.c b/lib/launch-direct.c index 4f038f4f0..e7c22fbef 100644 --- a/lib/launch-direct.c +++ b/lib/launch-direct.c @@ -554,8 +554,19 @@ launch_direct (guestfs_h *g, void *datav, const char *arg) } end_list (); cpu_model = guestfs_int_get_cpu_model (has_kvm && !force_tcg); - if (cpu_model) - arg ("-cpu", cpu_model); + if (cpu_model) { +#if defined(__x86_64__) + /* Temporary workaround for RHBZ#2082806 */ + if (STREQ (cpu_model, "max")) { + start_list ("-cpu") { + append_list (cpu_model); + append_list ("la57=off"); + } end_list (); + } + else +#endif + arg ("-cpu", cpu_model); + } if (g->smp > 1) arg_format ("-smp", "%d", g->smp); diff --git a/lib/launch-libvirt.c b/lib/launch-libvirt.c index cc714c02e..9e32c94cf 100644 --- a/lib/launch-libvirt.c +++ b/lib/launch-libvirt.c @@ -1185,6 +1185,13 @@ construct_libvirt_xml_cpu (guestfs_h *g, else if (STREQ (cpu_model, "max")) { /* https://bugzilla.redhat.com/show_bug.cgi?id=1935572#c11 */ attribute ("mode", "maximum"); +#if defined(__x86_64__) + /* Temporary workaround for RHBZ#2082806 */ + start_element ("feature") { + attribute ("policy", "disable"); + attribute ("name", "la57"); + } end_element (); +#endif } else single_element ("model", cpu_model);