yeahuh / rpms / qemu-kvm

Forked from rpms/qemu-kvm 2 years ago
Clone
Blob Blame History Raw
From 23e038b8eb586dc19f1d653cd98d0cae109f359b Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost@redhat.com>
Date: Thu, 10 Oct 2019 22:18:07 +0200
Subject: [PATCH 4/4] Add missing brackets to CPUID[0x80000008] code

RH-Author: Eduardo Habkost <ehabkost@redhat.com>
Message-id: <20191010221807.2953-1-ehabkost@redhat.com>
Patchwork-id: 91713
O-Subject: [RHEL-7.8 qemu-kvm PATCH] Add missing brackets to CPUID[0x80000008] code
Bugzilla: 1760607
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
RH-Acked-by: John Snow <jsnow@redhat.com>

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1760607
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=23986041
Upstream: not applicable

I've made a mistake at downstream-only commit ba222e201e07
("i386: Don't copy host virtual address limit"): I forgot to add
brackets to the existing if statement.  This expose an invalid
physical address size to the guest if the host xlevel is less
than 0x80000008.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
 target-i386/cpu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index b4839df..9283902 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -2978,7 +2978,7 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
             if (kvm_enabled()) {
                 uint32_t _eax;
                 host_cpuid(0x80000000, 0, &_eax, NULL, NULL, NULL);
-                if (_eax >= 0x80000008)
+                if (_eax >= 0x80000008) {
                     host_cpuid(0x80000008, 0, &_eax, NULL, NULL, NULL);
                     /*
                      * Override physical size only, as RHEL-7 KVM only supports
@@ -2986,6 +2986,7 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
                      */
                     *eax &= ~0xff;
                     *eax |= _eax & 0xff;
+                }
             }
         } else {
             if (env->features[FEAT_1_EDX] & CPUID_PSE36) {
-- 
1.8.3.1