]> www.infradead.org Git - users/dwmw2/qemu.git/commit
target/i386/kvm.c: Don't mark cpuid_data as QEMU_PACKED
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 10 Dec 2018 11:46:54 +0000 (11:46 +0000)
committerEduardo Habkost <ehabkost@redhat.com>
Tue, 11 Dec 2018 20:50:48 +0000 (18:50 -0200)
commit9115bb121323290a2fc3fc30fb35e0deee38d064
treebb51ce8174771d8ecee48b18a0ca5c9734e3deaa
parent1c65775ffc2dbd276a8bffe592feba0e186a151c
target/i386/kvm.c: Don't mark cpuid_data as QEMU_PACKED

clang complains about taking the address of a packed
member of a struct:

target/i386/kvm.c:1245:27: warning: taking address of packed member 'cpuid' of class or structure '' may result in an unaligned pointer value [-Waddress-of-packed-member]
    c = cpuid_find_entry(&cpuid_data.cpuid, 1, 0);
                          ^~~~~~~~~~~~~~~~
target/i386/kvm.c:1297:31: warning: taking address of packed member 'cpuid' of class or structure '' may result in an unaligned pointer value [-Waddress-of-packed-member]
        c = cpuid_find_entry(&cpuid_data.cpuid, kvm_base, 0);
                              ^~~~~~~~~~~~~~~~

The kernel's definitions of struct kvm_cpuid2 and struct
kvm_cpuid_entry2 are carefully set up with padding fields
so that there is no between-struct padding anyway, so
the QEMU_PACKED annotation is unnecessary and might result
in the compiler generating worse code. Drop it, and instead
assert at build time that there is no stray padding.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20181210114654.31433-1-peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
target/i386/kvm.c