Commit 326d07cb authored by Mathias Krause's avatar Mathias Krause Committed by Avi Kivity

KVM: x86: minor size optimization

Some fields can be constified and/or made static to reduce code and data
size.

Numbers for a 32 bit build:

        text    data     bss     dec     hex filename
before: 3351      80       0    3431     d67 cpuid.o
 after: 3391       0       0    3391     d3f cpuid.o
Signed-off-by: default avatarMathias Krause <minipli@googlemail.com>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent ec798660
...@@ -397,8 +397,8 @@ static int do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function, ...@@ -397,8 +397,8 @@ static int do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function,
break; break;
} }
case KVM_CPUID_SIGNATURE: { case KVM_CPUID_SIGNATURE: {
char signature[12] = "KVMKVMKVM\0\0"; static const char signature[12] = "KVMKVMKVM\0\0";
u32 *sigptr = (u32 *)signature; const u32 *sigptr = (const u32 *)signature;
entry->eax = KVM_CPUID_FEATURES; entry->eax = KVM_CPUID_FEATURES;
entry->ebx = sigptr[0]; entry->ebx = sigptr[0];
entry->ecx = sigptr[1]; entry->ecx = sigptr[1];
...@@ -484,10 +484,10 @@ struct kvm_cpuid_param { ...@@ -484,10 +484,10 @@ struct kvm_cpuid_param {
u32 func; u32 func;
u32 idx; u32 idx;
bool has_leaf_count; bool has_leaf_count;
bool (*qualifier)(struct kvm_cpuid_param *param); bool (*qualifier)(const struct kvm_cpuid_param *param);
}; };
static bool is_centaur_cpu(struct kvm_cpuid_param *param) static bool is_centaur_cpu(const struct kvm_cpuid_param *param)
{ {
return boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR; return boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR;
} }
...@@ -498,7 +498,7 @@ int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, ...@@ -498,7 +498,7 @@ int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid,
struct kvm_cpuid_entry2 *cpuid_entries; struct kvm_cpuid_entry2 *cpuid_entries;
int limit, nent = 0, r = -E2BIG, i; int limit, nent = 0, r = -E2BIG, i;
u32 func; u32 func;
static struct kvm_cpuid_param param[] = { static const struct kvm_cpuid_param param[] = {
{ .func = 0, .has_leaf_count = true }, { .func = 0, .has_leaf_count = true },
{ .func = 0x80000000, .has_leaf_count = true }, { .func = 0x80000000, .has_leaf_count = true },
{ .func = 0xC0000000, .qualifier = is_centaur_cpu, .has_leaf_count = true }, { .func = 0xC0000000, .qualifier = is_centaur_cpu, .has_leaf_count = true },
...@@ -517,7 +517,7 @@ int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, ...@@ -517,7 +517,7 @@ int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid,
r = 0; r = 0;
for (i = 0; i < ARRAY_SIZE(param); i++) { for (i = 0; i < ARRAY_SIZE(param); i++) {
struct kvm_cpuid_param *ent = &param[i]; const struct kvm_cpuid_param *ent = &param[i];
if (ent->qualifier && !ent->qualifier(ent)) if (ent->qualifier && !ent->qualifier(ent))
continue; continue;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment