[PATCH kvmtool 3/7] arm64: Free the temporary cpumask in vcpu_affinity_parser()
Alexandru Elisei
alexandru.elisei at arm.com
Thu Sep 17 08:49:28 PDT 2026
Free the local variable 'cpumask' when the function is successful.
Signed-off-by: Alexandru Elisei <alexandru.elisei at arm.com>
---
arm64/kvm.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/arm64/kvm.c b/arm64/kvm.c
index 5f3ed9f6d201..88b3622766bf 100644
--- a/arm64/kvm.c
+++ b/arm64/kvm.c
@@ -451,7 +451,8 @@ int vcpu_affinity_parser(const struct option *opt, const char *arg, int unset)
const char *cpulist = arg;
cpumask_t *cpumask;
size_t setsize;
- int cpu, ret;
+ int ret = 0;
+ int cpu;
kvm->cfg.arch.vcpu_affinity = cpulist;
@@ -460,10 +461,8 @@ int vcpu_affinity_parser(const struct option *opt, const char *arg, int unset)
die_perror("calloc");
ret = cpulist_parse(cpulist, cpumask);
- if (ret) {
- free(cpumask);
- return ret;
- }
+ if (ret)
+ goto out_free;
kvm->arch.vcpu_affinity_cpuset = CPU_ALLOC(NR_CPUS);
if (!kvm->arch.vcpu_affinity_cpuset)
@@ -474,7 +473,9 @@ int vcpu_affinity_parser(const struct option *opt, const char *arg, int unset)
for_each_cpu(cpu, cpumask)
CPU_SET_S(cpu, setsize, kvm->arch.vcpu_affinity_cpuset);
- return 0;
+out_free:
+ free(cpumask);
+ return ret;
}
void kvm__arch_validate_cfg(struct kvm *kvm)
--
2.55.0
More information about the linux-arm-kernel
mailing list