Revision 7267c094 target-i386/kvm.c
b/target-i386/kvm.c | ||
---|---|---|
68 | 68 |
int r, size; |
69 | 69 |
|
70 | 70 |
size = sizeof(*cpuid) + max * sizeof(*cpuid->entries); |
71 |
cpuid = (struct kvm_cpuid2 *)qemu_mallocz(size);
|
|
71 |
cpuid = (struct kvm_cpuid2 *)g_malloc0(size);
|
|
72 | 72 |
cpuid->nent = max; |
73 | 73 |
r = kvm_ioctl(s, KVM_GET_SUPPORTED_CPUID, cpuid); |
74 | 74 |
if (r == 0 && cpuid->nent >= max) { |
... | ... | |
76 | 76 |
} |
77 | 77 |
if (r < 0) { |
78 | 78 |
if (r == -E2BIG) { |
79 |
qemu_free(cpuid);
|
|
79 |
g_free(cpuid);
|
|
80 | 80 |
return NULL; |
81 | 81 |
} else { |
82 | 82 |
fprintf(stderr, "KVM_GET_SUPPORTED_CPUID failed: %s\n", |
... | ... | |
162 | 162 |
} |
163 | 163 |
} |
164 | 164 |
|
165 |
qemu_free(cpuid);
|
|
165 |
g_free(cpuid);
|
|
166 | 166 |
|
167 | 167 |
/* fallback for older kernels */ |
168 | 168 |
if (!has_kvm_features && (function == KVM_CPUID_FEATURES)) { |
... | ... | |
187 | 187 |
QLIST_FOREACH_SAFE(page, &hwpoison_page_list, list, next_page) { |
188 | 188 |
QLIST_REMOVE(page, list); |
189 | 189 |
qemu_ram_remap(page->ram_addr, TARGET_PAGE_SIZE); |
190 |
qemu_free(page);
|
|
190 |
g_free(page);
|
|
191 | 191 |
} |
192 | 192 |
} |
193 | 193 |
|
... | ... | |
200 | 200 |
return; |
201 | 201 |
} |
202 | 202 |
} |
203 |
page = qemu_malloc(sizeof(HWPoisonPage));
|
|
203 |
page = g_malloc(sizeof(HWPoisonPage));
|
|
204 | 204 |
page->ram_addr = ram_addr; |
205 | 205 |
QLIST_INSERT_HEAD(&hwpoison_page_list, page, list); |
206 | 206 |
} |
... | ... | |
549 | 549 |
} |
550 | 550 |
/* Old kernel modules had a bug and could write beyond the provided |
551 | 551 |
memory. Allocate at least a safe amount of 1K. */ |
552 |
kvm_msr_list = qemu_mallocz(MAX(1024, sizeof(msr_list) +
|
|
552 |
kvm_msr_list = g_malloc0(MAX(1024, sizeof(msr_list) +
|
|
553 | 553 |
msr_list.nmsrs * |
554 | 554 |
sizeof(msr_list.indices[0]))); |
555 | 555 |
|
... | ... | |
570 | 570 |
} |
571 | 571 |
} |
572 | 572 |
|
573 |
qemu_free(kvm_msr_list);
|
|
573 |
g_free(kvm_msr_list);
|
|
574 | 574 |
} |
575 | 575 |
|
576 | 576 |
return ret; |
... | ... | |
788 | 788 |
memcpy(&xsave->region[XSAVE_YMMH_SPACE], env->ymmh_regs, |
789 | 789 |
sizeof env->ymmh_regs); |
790 | 790 |
r = kvm_vcpu_ioctl(env, KVM_SET_XSAVE, xsave); |
791 |
qemu_free(xsave);
|
|
791 |
g_free(xsave);
|
|
792 | 792 |
return r; |
793 | 793 |
} |
794 | 794 |
|
... | ... | |
969 | 969 |
xsave = qemu_memalign(4096, sizeof(struct kvm_xsave)); |
970 | 970 |
ret = kvm_vcpu_ioctl(env, KVM_GET_XSAVE, xsave); |
971 | 971 |
if (ret < 0) { |
972 |
qemu_free(xsave);
|
|
972 |
g_free(xsave);
|
|
973 | 973 |
return ret; |
974 | 974 |
} |
975 | 975 |
|
... | ... | |
993 | 993 |
env->xstate_bv = *(uint64_t *)&xsave->region[XSAVE_XSTATE_BV]; |
994 | 994 |
memcpy(env->ymmh_regs, &xsave->region[XSAVE_YMMH_SPACE], |
995 | 995 |
sizeof env->ymmh_regs); |
996 |
qemu_free(xsave);
|
|
996 |
g_free(xsave);
|
|
997 | 997 |
return 0; |
998 | 998 |
} |
999 | 999 |
|
Also available in: Unified diff