linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] btrfs:check-integrity.c: replace kmalloc with kmalloc_array and kzalloc with kzalloc_array.
@ 2013-11-06 20:55 Himangi Saraogi
  2013-11-08  0:40 ` [OPW kernel] " Rusty Russell
  2013-11-15 19:59 ` Josef Bacik
  0 siblings, 2 replies; 3+ messages in thread
From: Himangi Saraogi @ 2013-11-06 20:55 UTC (permalink / raw)
  To: opw-kernel, linux-btrfs

This patch replaces kmalloc(size * nr, ) with kmalloc_array(nr, size)
as kmalloc_array() is preferred because it can check that the
calculation doesn't wrap and won't return a smaller allocation.
Also kzalloc(size * nr) was replaced with kzalloc_array().

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
---
 fs/btrfs/check-integrity.c |   12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/fs/btrfs/check-integrity.c b/fs/btrfs/check-integrity.c
index 1c47be1..925a52b 100644
--- a/fs/btrfs/check-integrity.c
+++ b/fs/btrfs/check-integrity.c
@@ -1660,9 +1660,10 @@ static int btrfsic_read_block(struct btrfsic_state *state,
 
 	num_pages = (block_ctx->len + (u64)PAGE_CACHE_SIZE - 1) >>
 		    PAGE_CACHE_SHIFT;
-	block_ctx->mem_to_free = kzalloc((sizeof(*block_ctx->datav) +
-					  sizeof(*block_ctx->pagev)) *
-					 num_pages, GFP_NOFS);
+	block_ctx->mem_to_free = kzalloc_array(num_pages,
+						(sizeof(*block_ctx->datav) +
+						 sizeof(*block_ctx->pagev)),
+						GFP_NOFS);
 	if (!block_ctx->mem_to_free)
 		return -1;
 	block_ctx->datav = block_ctx->mem_to_free;
@@ -3031,8 +3032,9 @@ void btrfsic_submit_bio(int rw, struct bio *bio)
 			       (unsigned long long)bio->bi_sector, dev_bytenr,
 			       bio->bi_bdev);
 
-		mapped_datav = kmalloc(sizeof(*mapped_datav) * bio->bi_vcnt,
-				       GFP_NOFS);
+		mapped_datav = kmalloc_array(bio->bi_vcnt,
+					     sizeof(*mapped_datav),
+					     GFP_NOFS);
 		if (!mapped_datav)
 			goto leave;
 		for (i = 0; i < bio->bi_vcnt; i++) {
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [OPW kernel] [PATCH v2] btrfs:check-integrity.c: replace kmalloc with kmalloc_array and kzalloc with kzalloc_array.
  2013-11-06 20:55 [PATCH v2] btrfs:check-integrity.c: replace kmalloc with kmalloc_array and kzalloc with kzalloc_array Himangi Saraogi
@ 2013-11-08  0:40 ` Rusty Russell
  2013-11-15 19:59 ` Josef Bacik
  1 sibling, 0 replies; 3+ messages in thread
From: Rusty Russell @ 2013-11-08  0:40 UTC (permalink / raw)
  To: Himangi Saraogi, opw-kernel, linux-btrfs

Himangi Saraogi <himangi774@gmail.com> writes:
> This patch replaces kmalloc(size * nr, ) with kmalloc_array(nr, size)
> as kmalloc_array() is preferred because it can check that the
> calculation doesn't wrap and won't return a smaller allocation.
> Also kzalloc(size * nr) was replaced with kzalloc_array().
>
> Signed-off-by: Himangi Saraogi <himangi774@gmail.com>

Reviewed-by: Rusty Russell <rusty@rustcorp.com.au>

Cheers,
Rusty.

> ---
>  fs/btrfs/check-integrity.c |   12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/fs/btrfs/check-integrity.c b/fs/btrfs/check-integrity.c
> index 1c47be1..925a52b 100644
> --- a/fs/btrfs/check-integrity.c
> +++ b/fs/btrfs/check-integrity.c
> @@ -1660,9 +1660,10 @@ static int btrfsic_read_block(struct btrfsic_state *state,
>  
>  	num_pages = (block_ctx->len + (u64)PAGE_CACHE_SIZE - 1) >>
>  		    PAGE_CACHE_SHIFT;
> -	block_ctx->mem_to_free = kzalloc((sizeof(*block_ctx->datav) +
> -					  sizeof(*block_ctx->pagev)) *
> -					 num_pages, GFP_NOFS);
> +	block_ctx->mem_to_free = kzalloc_array(num_pages,
> +						(sizeof(*block_ctx->datav) +
> +						 sizeof(*block_ctx->pagev)),
> +						GFP_NOFS);
>  	if (!block_ctx->mem_to_free)
>  		return -1;
>  	block_ctx->datav = block_ctx->mem_to_free;
> @@ -3031,8 +3032,9 @@ void btrfsic_submit_bio(int rw, struct bio *bio)
>  			       (unsigned long long)bio->bi_sector, dev_bytenr,
>  			       bio->bi_bdev);
>  
> -		mapped_datav = kmalloc(sizeof(*mapped_datav) * bio->bi_vcnt,
> -				       GFP_NOFS);
> +		mapped_datav = kmalloc_array(bio->bi_vcnt,
> +					     sizeof(*mapped_datav),
> +					     GFP_NOFS);
>  		if (!mapped_datav)
>  			goto leave;
>  		for (i = 0; i < bio->bi_vcnt; i++) {
> -- 
> 1.7.9.5
>
> -- 
> You received this message because you are subscribed to the Google Groups "opw-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to opw-kernel+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] btrfs:check-integrity.c: replace kmalloc with kmalloc_array and kzalloc with kzalloc_array.
  2013-11-06 20:55 [PATCH v2] btrfs:check-integrity.c: replace kmalloc with kmalloc_array and kzalloc with kzalloc_array Himangi Saraogi
  2013-11-08  0:40 ` [OPW kernel] " Rusty Russell
@ 2013-11-15 19:59 ` Josef Bacik
  1 sibling, 0 replies; 3+ messages in thread
From: Josef Bacik @ 2013-11-15 19:59 UTC (permalink / raw)
  To: Himangi Saraogi; +Cc: opw-kernel, linux-btrfs

On Thu, Nov 07, 2013 at 02:25:50AM +0530, Himangi Saraogi wrote:
> This patch replaces kmalloc(size * nr, ) with kmalloc_array(nr, size)
> as kmalloc_array() is preferred because it can check that the
> calculation doesn't wrap and won't return a smaller allocation.
> Also kzalloc(size * nr) was replaced with kzalloc_array().
> 
> Signed-off-by: Himangi Saraogi <himangi774@gmail.com>

This fails to build.  Thanks,

Josef

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-11-15 19:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-06 20:55 [PATCH v2] btrfs:check-integrity.c: replace kmalloc with kmalloc_array and kzalloc with kzalloc_array Himangi Saraogi
2013-11-08  0:40 ` [OPW kernel] " Rusty Russell
2013-11-15 19:59 ` Josef Bacik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).