Hi Peter,
url:
https://github.com/0day-ci/linux/commits/Peter-Gonda/Add-AMD-SEV-and-SEV-...
base: 7caa04b36f204a01dac65582b71d26d190a1e022
config: x86_64-randconfig-m001-20210714 (attached as .config)
compiler: gcc-10 (Debian 10.2.1-6) 10.2.1 20210110
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
New smatch warnings:
arch/x86/kvm/svm/sev.c:1253 create_vmsa_list() warn: possible memory leak of
'node'
Old smatch warnings:
arch/x86/kvm/svm/sev.c:1607 sev_send_update_data() warn: maybe return -EFAULT instead of
the bytes remaining?
vim +/node +1253 arch/x86/kvm/svm/sev.c
bec8b6143b5a9c Peter Gonda 2021-07-14 1211 static int create_vmsa_list(struct kvm *kvm,
bec8b6143b5a9c Peter Gonda 2021-07-14 1212 struct sev_info_migration_node
*entry)
bec8b6143b5a9c Peter Gonda 2021-07-14 1213 {
bec8b6143b5a9c Peter Gonda 2021-07-14 1214 int i;
bec8b6143b5a9c Peter Gonda 2021-07-14 1215 const int num_vcpus =
atomic_read(&kvm->online_vcpus);
bec8b6143b5a9c Peter Gonda 2021-07-14 1216 struct vmsa_node *node;
bec8b6143b5a9c Peter Gonda 2021-07-14 1217 struct kvm_vcpu *vcpu;
bec8b6143b5a9c Peter Gonda 2021-07-14 1218 struct vcpu_svm *svm;
bec8b6143b5a9c Peter Gonda 2021-07-14 1219
bec8b6143b5a9c Peter Gonda 2021-07-14 1220 INIT_LIST_HEAD(&entry->vmsa_list);
bec8b6143b5a9c Peter Gonda 2021-07-14 1221 for (i = 0; i < num_vcpus; ++i) {
bec8b6143b5a9c Peter Gonda 2021-07-14 1222 node = kzalloc(sizeof(*node), GFP_KERNEL);
bec8b6143b5a9c Peter Gonda 2021-07-14 1223 if (!node)
bec8b6143b5a9c Peter Gonda 2021-07-14 1224 goto e_freelist;
bec8b6143b5a9c Peter Gonda 2021-07-14 1225
bec8b6143b5a9c Peter Gonda 2021-07-14 1226 vcpu = kvm->vcpus[i];
bec8b6143b5a9c Peter Gonda 2021-07-14 1227 if (!vcpu->arch.guest_state_protected)
bec8b6143b5a9c Peter Gonda 2021-07-14 1228 goto e_freelist;
kfree(node) before the goto.
bec8b6143b5a9c Peter Gonda 2021-07-14 1229
bec8b6143b5a9c Peter Gonda 2021-07-14 1230 node->vcpu_id = vcpu->vcpu_id;
bec8b6143b5a9c Peter Gonda 2021-07-14 1231 svm = to_svm(vcpu);
bec8b6143b5a9c Peter Gonda 2021-07-14 1232 node->vmsa = svm->vmsa;
bec8b6143b5a9c Peter Gonda 2021-07-14 1233 svm->vmsa = NULL;
bec8b6143b5a9c Peter Gonda 2021-07-14 1234 node->ghcb = svm->ghcb;
bec8b6143b5a9c Peter Gonda 2021-07-14 1235 svm->ghcb = NULL;
bec8b6143b5a9c Peter Gonda 2021-07-14 1236 node->ghcb_gpa =
svm->vmcb->control.ghcb_gpa;
bec8b6143b5a9c Peter Gonda 2021-07-14 1237 node->ghcb_sa = svm->ghcb_sa;
bec8b6143b5a9c Peter Gonda 2021-07-14 1238 svm->ghcb_sa = NULL;
bec8b6143b5a9c Peter Gonda 2021-07-14 1239 node->ghcb_sa_len =
svm->ghcb_sa_len;
bec8b6143b5a9c Peter Gonda 2021-07-14 1240 svm->ghcb_sa_len = 0;
bec8b6143b5a9c Peter Gonda 2021-07-14 1241 node->ghcb_sa_sync =
svm->ghcb_sa_sync;
bec8b6143b5a9c Peter Gonda 2021-07-14 1242 svm->ghcb_sa_sync = false;
bec8b6143b5a9c Peter Gonda 2021-07-14 1243 node->ghcb_sa_free =
svm->ghcb_sa_free;
bec8b6143b5a9c Peter Gonda 2021-07-14 1244 svm->ghcb_sa_free = false;
bec8b6143b5a9c Peter Gonda 2021-07-14 1245
bec8b6143b5a9c Peter Gonda 2021-07-14 1246 list_add_tail(&node->list,
&entry->vmsa_list);
bec8b6143b5a9c Peter Gonda 2021-07-14 1247 }
bec8b6143b5a9c Peter Gonda 2021-07-14 1248
bec8b6143b5a9c Peter Gonda 2021-07-14 1249 return 0;
bec8b6143b5a9c Peter Gonda 2021-07-14 1250
bec8b6143b5a9c Peter Gonda 2021-07-14 1251 e_freelist:
bec8b6143b5a9c Peter Gonda 2021-07-14 1252 process_vmsa_list(kvm,
&entry->vmsa_list);
bec8b6143b5a9c Peter Gonda 2021-07-14 @1253 return -1;
bec8b6143b5a9c Peter Gonda 2021-07-14 1254 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org