diff mbox

[02/26] IB/ocrdma: Use kcalloc() in ocrdma_mbx_alloc_pd_range()

Message ID 7abcae42-6bc2-0653-69ea-5112943ff72e@users.sourceforge.net (mailing list archive)
State Changes Requested
Headers show

Commit Message

SF Markus Elfring March 8, 2017, 12:41 p.m. UTC
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 7 Mar 2017 18:23:54 +0100

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

  This issue was detected by using the Coccinelle software.

* Delete the local variable "pd_bitmap_size" which became unnecessary with
  this refactoring.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

Comments

Yuval Shaia March 8, 2017, 2:03 p.m. UTC | #1
On Wed, Mar 08, 2017 at 01:41:00PM +0100, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Tue, 7 Mar 2017 18:23:54 +0100
> 
> * Multiplications for the size determination of memory allocations
>   indicated that array data structures should be processed.
>   Thus reuse the corresponding function "kcalloc".
> 
>   This issue was detected by using the Coccinelle software.
> 
> * Delete the local variable "pd_bitmap_size" which became unnecessary with
>   this refactoring.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>  drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> index cbac41b15d94..d5a3127b6df8 100644
> --- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> +++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> @@ -1505,7 +1505,6 @@ int ocrdma_mbx_dealloc_pd(struct ocrdma_dev *dev, struct ocrdma_pd *pd)
>  static int ocrdma_mbx_alloc_pd_range(struct ocrdma_dev *dev)
>  {
>  	int status = -ENOMEM;
> -	size_t pd_bitmap_size;
>  	struct ocrdma_alloc_pd_range *cmd;
>  	struct ocrdma_alloc_pd_range_rsp *rsp;
>  
> @@ -1527,10 +1526,10 @@ static int ocrdma_mbx_alloc_pd_range(struct ocrdma_dev *dev)
>  			dev->pd_mgr->pd_dpp_start = rsp->dpp_page_pdid &
>  					OCRDMA_ALLOC_PD_RNG_RSP_START_PDID_MASK;
>  			dev->pd_mgr->max_dpp_pd = rsp->pd_count;
> -			pd_bitmap_size =
> -				BITS_TO_LONGS(rsp->pd_count) * sizeof(long);
> -			dev->pd_mgr->pd_dpp_bitmap = kzalloc(pd_bitmap_size,
> -							     GFP_KERNEL);
> +			dev->pd_mgr->pd_dpp_bitmap
> +				= kcalloc(BITS_TO_LONGS(rsp->pd_count),
> +							sizeof(long),
> +							GFP_KERNEL);

kzalloc gives "clean" buffer.
Just making sure that it is fine with you if the array is not "clean".
(looking at _ocrdma_pd_mgr_get_bitmap i think it should).

>  		}
>  		kfree(cmd);
>  	}
> @@ -1546,9 +1545,10 @@ static int ocrdma_mbx_alloc_pd_range(struct ocrdma_dev *dev)
>  		dev->pd_mgr->pd_norm_start = rsp->dpp_page_pdid &
>  					OCRDMA_ALLOC_PD_RNG_RSP_START_PDID_MASK;
>  		dev->pd_mgr->max_normal_pd = rsp->pd_count;
> -		pd_bitmap_size = BITS_TO_LONGS(rsp->pd_count) * sizeof(long);
> -		dev->pd_mgr->pd_norm_bitmap = kzalloc(pd_bitmap_size,
> -						      GFP_KERNEL);
> +		dev->pd_mgr->pd_norm_bitmap
> +			= kcalloc(BITS_TO_LONGS(rsp->pd_count),
> +						sizeof(long),
> +						GFP_KERNEL);
>  	}
>  	kfree(cmd);
>  
> -- 
> 2.12.0
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Doug Ledford April 20, 2017, 8:40 p.m. UTC | #2
On Wed, 2017-03-08 at 16:03 +0200, Yuval Shaia wrote:
> On Wed, Mar 08, 2017 at 01:41:00PM +0100, SF Markus Elfring wrote:
> > 
> > From: Markus Elfring <elfring@users.sourceforge.net>
> > Date: Tue, 7 Mar 2017 18:23:54 +0100
> > 
> > * Multiplications for the size determination of memory allocations
> >   indicated that array data structures should be processed.
> >   Thus reuse the corresponding function "kcalloc".
> > 
> >   This issue was detected by using the Coccinelle software.
> > 
> > * Delete the local variable "pd_bitmap_size" which became
> > unnecessary with
> >   this refactoring.
> > 
> > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> > ---
> >  drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 16 ++++++++--------
> >  1 file changed, 8 insertions(+), 8 deletions(-)
> > 
> > diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> > b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> > index cbac41b15d94..d5a3127b6df8 100644
> > --- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> > +++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> > @@ -1505,7 +1505,6 @@ int ocrdma_mbx_dealloc_pd(struct ocrdma_dev
> > *dev, struct ocrdma_pd *pd)
> >  static int ocrdma_mbx_alloc_pd_range(struct ocrdma_dev *dev)
> >  {
> >  	int status = -ENOMEM;
> > -	size_t pd_bitmap_size;
> >  	struct ocrdma_alloc_pd_range *cmd;
> >  	struct ocrdma_alloc_pd_range_rsp *rsp;
> >  
> > @@ -1527,10 +1526,10 @@ static int ocrdma_mbx_alloc_pd_range(struct
> > ocrdma_dev *dev)
> >  			dev->pd_mgr->pd_dpp_start = rsp-
> > >dpp_page_pdid &
> >  					OCRDMA_ALLOC_PD_RNG_RSP_ST
> > ART_PDID_MASK;
> >  			dev->pd_mgr->max_dpp_pd = rsp->pd_count;
> > -			pd_bitmap_size =
> > -				BITS_TO_LONGS(rsp->pd_count) *
> > sizeof(long);
> > -			dev->pd_mgr->pd_dpp_bitmap =
> > kzalloc(pd_bitmap_size,
> > -							     GFP_K
> > ERNEL);
> > +			dev->pd_mgr->pd_dpp_bitmap
> > +				= kcalloc(BITS_TO_LONGS(rsp-
> > >pd_count),
> > +							sizeof(lon
> > g),
> > +							GFP_KERNEL
> > );
> 
> kzalloc gives "clean" buffer.
> Just making sure that it is fine with you if the array is not
> "clean".
> (looking at _ocrdma_pd_mgr_get_bitmap i think it should).

kcalloc is documented to return memory set to 0.

> > 
> >  		}
> >  		kfree(cmd);
> >  	}
> > @@ -1546,9 +1545,10 @@ static int ocrdma_mbx_alloc_pd_range(struct
> > ocrdma_dev *dev)
> >  		dev->pd_mgr->pd_norm_start = rsp->dpp_page_pdid &
> >  					OCRDMA_ALLOC_PD_RNG_RSP_ST
> > ART_PDID_MASK;
> >  		dev->pd_mgr->max_normal_pd = rsp->pd_count;
> > -		pd_bitmap_size = BITS_TO_LONGS(rsp->pd_count) *
> > sizeof(long);
> > -		dev->pd_mgr->pd_norm_bitmap =
> > kzalloc(pd_bitmap_size,
> > -						      GFP_KERNEL);
> > +		dev->pd_mgr->pd_norm_bitmap
> > +			= kcalloc(BITS_TO_LONGS(rsp->pd_count),
> > +						sizeof(long),
> > +						GFP_KERNEL);
> >  	}
> >  	kfree(cmd);
> >  
> > -- 
> > 2.12.0
> > 
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-
> > rdma" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
index cbac41b15d94..d5a3127b6df8 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
@@ -1505,7 +1505,6 @@  int ocrdma_mbx_dealloc_pd(struct ocrdma_dev *dev, struct ocrdma_pd *pd)
 static int ocrdma_mbx_alloc_pd_range(struct ocrdma_dev *dev)
 {
 	int status = -ENOMEM;
-	size_t pd_bitmap_size;
 	struct ocrdma_alloc_pd_range *cmd;
 	struct ocrdma_alloc_pd_range_rsp *rsp;
 
@@ -1527,10 +1526,10 @@  static int ocrdma_mbx_alloc_pd_range(struct ocrdma_dev *dev)
 			dev->pd_mgr->pd_dpp_start = rsp->dpp_page_pdid &
 					OCRDMA_ALLOC_PD_RNG_RSP_START_PDID_MASK;
 			dev->pd_mgr->max_dpp_pd = rsp->pd_count;
-			pd_bitmap_size =
-				BITS_TO_LONGS(rsp->pd_count) * sizeof(long);
-			dev->pd_mgr->pd_dpp_bitmap = kzalloc(pd_bitmap_size,
-							     GFP_KERNEL);
+			dev->pd_mgr->pd_dpp_bitmap
+				= kcalloc(BITS_TO_LONGS(rsp->pd_count),
+							sizeof(long),
+							GFP_KERNEL);
 		}
 		kfree(cmd);
 	}
@@ -1546,9 +1545,10 @@  static int ocrdma_mbx_alloc_pd_range(struct ocrdma_dev *dev)
 		dev->pd_mgr->pd_norm_start = rsp->dpp_page_pdid &
 					OCRDMA_ALLOC_PD_RNG_RSP_START_PDID_MASK;
 		dev->pd_mgr->max_normal_pd = rsp->pd_count;
-		pd_bitmap_size = BITS_TO_LONGS(rsp->pd_count) * sizeof(long);
-		dev->pd_mgr->pd_norm_bitmap = kzalloc(pd_bitmap_size,
-						      GFP_KERNEL);
+		dev->pd_mgr->pd_norm_bitmap
+			= kcalloc(BITS_TO_LONGS(rsp->pd_count),
+						sizeof(long),
+						GFP_KERNEL);
 	}
 	kfree(cmd);