Re: [PATCH 5/6] KVM: PPC: e500: Use kmalloc_array() in kvmppc_e500_tlb_init()

From: Julia Lawall
Date: Sun Aug 28 2016 - 13:47:07 EST




On Sun, 28 Aug 2016, SF Markus Elfring wrote:

> From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
> Date: Sun, 28 Aug 2016 18:40:08 +0200
>
> * A multiplication for the size determination of a memory allocation
> indicated that an array data structure should be processed.
> Thus use the corresponding function "kmalloc_array".
>
> * Replace the specification of a data structure by a pointer dereference
> to make the corresponding size determination a bit safer according to
> the Linux coding style convention.
>
> Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
> ---
> arch/powerpc/kvm/e500_mmu.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/arch/powerpc/kvm/e500_mmu.c b/arch/powerpc/kvm/e500_mmu.c
> index 2be2afc4..0a2eeb1 100644
> --- a/arch/powerpc/kvm/e500_mmu.c
> +++ b/arch/powerpc/kvm/e500_mmu.c
> @@ -905,8 +905,6 @@ static int vcpu_mmu_init(struct kvm_vcpu *vcpu,
> int kvmppc_e500_tlb_init(struct kvmppc_vcpu_e500 *vcpu_e500)
> {
> struct kvm_vcpu *vcpu = &vcpu_e500->vcpu;
> - int entry_size = sizeof(struct kvm_book3e_206_tlb_entry);
> - int entries = KVM_E500_TLB0_SIZE + KVM_E500_TLB1_SIZE;
>
> if (e500_mmu_host_init(vcpu_e500))
> goto err;
> @@ -921,7 +919,10 @@ int kvmppc_e500_tlb_init(struct kvmppc_vcpu_e500 *vcpu_e500)
> vcpu_e500->gtlb_params[1].ways = KVM_E500_TLB1_SIZE;
> vcpu_e500->gtlb_params[1].sets = 1;
>
> - vcpu_e500->gtlb_arch = kmalloc(entries * entry_size, GFP_KERNEL);
> + vcpu_e500->gtlb_arch = kmalloc_array(KVM_E500_TLB0_SIZE +
> + KVM_E500_TLB1_SIZE,
> + sizeof(*vcpu_e500->gtlb_arch),
> + GFP_KERNEL);

There are changes here that are not mentioned in the commit log.

julia

> if (!vcpu_e500->gtlb_arch)
> return -ENOMEM;
>
> --
> 2.9.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>