Commit 0624a8eb authored by Markus Elfring's avatar Markus Elfring Committed by Christian Borntraeger

KVM: s390: Use memdup_user() rather than duplicating code

* Reuse existing functionality from memdup_user() instead of keeping
  duplicate source code.

  This issue was detected by using the Coccinelle software.

* Return directly if this copy operation failed.
Reviewed-by: default avatarDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Acked-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: default avatarMarkus Elfring <elfring@users.sourceforge.net>
Message-Id: <c86f7520-885e-2829-ae9c-b81caa898e84@users.sourceforge.net>
Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
parent a1708a2e
...@@ -216,20 +216,10 @@ int kvm_s390_import_bp_data(struct kvm_vcpu *vcpu, ...@@ -216,20 +216,10 @@ int kvm_s390_import_bp_data(struct kvm_vcpu *vcpu,
else if (dbg->arch.nr_hw_bp > MAX_BP_COUNT) else if (dbg->arch.nr_hw_bp > MAX_BP_COUNT)
return -EINVAL; return -EINVAL;
bp_data = kmalloc_array(dbg->arch.nr_hw_bp, bp_data = memdup_user(dbg->arch.hw_bp,
sizeof(*bp_data), sizeof(*bp_data) * dbg->arch.nr_hw_bp);
GFP_KERNEL); if (IS_ERR(bp_data))
if (!bp_data) { return PTR_ERR(bp_data);
ret = -ENOMEM;
goto error;
}
if (copy_from_user(bp_data,
dbg->arch.hw_bp,
sizeof(*bp_data) * dbg->arch.nr_hw_bp)) {
ret = -EFAULT;
goto error;
}
for (i = 0; i < dbg->arch.nr_hw_bp; i++) { for (i = 0; i < dbg->arch.nr_hw_bp; i++) {
switch (bp_data[i].type) { switch (bp_data[i].type) {
......
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