Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1553903 > unrolled thread

[PATCH] VMCI: Use kmalloc_array() in qp_alloc_ppn_set()

Started bySF Markus Elfring <elfring@users.sourceforge.net>
First post2017-01-08 17:40 +0100
Last post2017-01-09 12:50 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] VMCI: Use kmalloc_array() in qp_alloc_ppn_set() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-08 17:40 +0100
    Re: [PATCH] VMCI: Use kmalloc_array() in qp_alloc_ppn_set() Michal Hocko <mhocko@kernel.org> - 2017-01-09 10:50 +0100
      Re: VMCI: Use kmalloc_array() in qp_alloc_ppn_set() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-09 12:50 +0100

#1553903 — [PATCH] VMCI: Use kmalloc_array() in qp_alloc_ppn_set()

FromSF Markus Elfring <elfring@users.sourceforge.net>
Date2017-01-08 17:40 +0100
Subject[PATCH] VMCI: Use kmalloc_array() in qp_alloc_ppn_set()
Message-ID<sXoFH-k0-9@gated-at.bofh.it>
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sun, 8 Jan 2017 14:04:10 +0100

Multiplications for the size determination of memory allocations
indicated that array data structures should be processed.
Thus use the corresponding function "kmalloc_array".

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/misc/vmw_vmci/vmci_queue_pair.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/misc/vmw_vmci/vmci_queue_pair.c b/drivers/misc/vmw_vmci/vmci_queue_pair.c
index 498c0854305f..7b5c8a89cc54 100644
--- a/drivers/misc/vmw_vmci/vmci_queue_pair.c
+++ b/drivers/misc/vmw_vmci/vmci_queue_pair.c
@@ -486,13 +486,15 @@ static int qp_alloc_ppn_set(void *prod_q,
 	if (ppn_set->initialized)
 		return VMCI_ERROR_ALREADY_EXISTS;
 
-	produce_ppns =
-	    kmalloc(num_produce_pages * sizeof(*produce_ppns), GFP_KERNEL);
+	produce_ppns = kmalloc_array(num_produce_pages,
+				     sizeof(*produce_ppns),
+				     GFP_KERNEL);
 	if (!produce_ppns)
 		return VMCI_ERROR_NO_MEM;
 
-	consume_ppns =
-	    kmalloc(num_consume_pages * sizeof(*consume_ppns), GFP_KERNEL);
+	consume_ppns = kmalloc_array(num_consume_pages,
+				     sizeof(*consume_ppns),
+				     GFP_KERNEL);
 	if (!consume_ppns) {
 		kfree(produce_ppns);
 		return VMCI_ERROR_NO_MEM;
-- 
2.11.0

[toc] | [next] | [standalone]


#1554172

FromMichal Hocko <mhocko@kernel.org>
Date2017-01-09 10:50 +0100
Message-ID<sXEKt-2tb-3@gated-at.bofh.it>
In reply to#1553903
On Sun 08-01-17 17:37:08, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Sun, 8 Jan 2017 14:04:10 +0100
> 
> Multiplications for the size determination of memory allocations
> indicated that array data structures should be processed.
> Thus use the corresponding function "kmalloc_array".
> 
> This issue was detected by using the Coccinelle software.

I am surprised that Coccinelle found a single instance of this pattern.
If there are more then I would suggest changing all of them at once
along with the coccinelle program which has been used.

> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>  drivers/misc/vmw_vmci/vmci_queue_pair.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/misc/vmw_vmci/vmci_queue_pair.c b/drivers/misc/vmw_vmci/vmci_queue_pair.c
> index 498c0854305f..7b5c8a89cc54 100644
> --- a/drivers/misc/vmw_vmci/vmci_queue_pair.c
> +++ b/drivers/misc/vmw_vmci/vmci_queue_pair.c
> @@ -486,13 +486,15 @@ static int qp_alloc_ppn_set(void *prod_q,
>  	if (ppn_set->initialized)
>  		return VMCI_ERROR_ALREADY_EXISTS;
>  
> -	produce_ppns =
> -	    kmalloc(num_produce_pages * sizeof(*produce_ppns), GFP_KERNEL);
> +	produce_ppns = kmalloc_array(num_produce_pages,
> +				     sizeof(*produce_ppns),
> +				     GFP_KERNEL);
>  	if (!produce_ppns)
>  		return VMCI_ERROR_NO_MEM;
>  
> -	consume_ppns =
> -	    kmalloc(num_consume_pages * sizeof(*consume_ppns), GFP_KERNEL);
> +	consume_ppns = kmalloc_array(num_consume_pages,
> +				     sizeof(*consume_ppns),
> +				     GFP_KERNEL);
>  	if (!consume_ppns) {
>  		kfree(produce_ppns);
>  		return VMCI_ERROR_NO_MEM;
> -- 
> 2.11.0
> 

-- 
Michal Hocko
SUSE Labs

[toc] | [prev] | [next] | [standalone]


#1554247 — Re: VMCI: Use kmalloc_array() in qp_alloc_ppn_set()

FromSF Markus Elfring <elfring@users.sourceforge.net>
Date2017-01-09 12:50 +0100
SubjectRe: VMCI: Use kmalloc_array() in qp_alloc_ppn_set()
Message-ID<sXGCC-3EW-7@gated-at.bofh.it>
In reply to#1554172
> If there are more then I would suggest changing all of them at once
> along with the coccinelle program which has been used.

There are still hundreds of similar update candidates left over for
other software modules. The acceptance is varying for the proposed
refactoring by the involved developers and source code reviewers.

Regards,
Markus

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web