From: lixiubo <lixi...@cmss.chinamobile.com>

Replace kmalloc with specialized function kmalloc_array when the size
is a multiplication of : number * size

Signed-off-by: lixiubo <lixi...@cmss.chinamobile.com>
---
 drivers/base/regmap/regcache-lzo.c    | 4 ++--
 drivers/base/regmap/regcache-rbtree.c | 4 ++--
 drivers/base/regmap/regmap-irq.c      | 5 +++--
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/base/regmap/regcache-lzo.c 
b/drivers/base/regmap/regcache-lzo.c
index 1f4eef2..0c652243 100644
--- a/drivers/base/regmap/regcache-lzo.c
+++ b/drivers/base/regmap/regcache-lzo.c
@@ -152,8 +152,8 @@ static int regcache_lzo_init(struct regmap *map)
         * that register.
         */
        bmp_size = map->num_reg_defaults_raw;
-       sync_bmp = kmalloc(BITS_TO_LONGS(bmp_size) * sizeof(long),
-                          GFP_KERNEL);
+       sync_bmp = kmalloc_array(BITS_TO_LONGS(bmp_size), sizeof(long),
+                                GFP_KERNEL);
        if (!sync_bmp) {
                ret = -ENOMEM;
                goto err;
diff --git a/drivers/base/regmap/regcache-rbtree.c 
b/drivers/base/regmap/regcache-rbtree.c
index 3b6cfed..9d7ced5 100644
--- a/drivers/base/regmap/regcache-rbtree.c
+++ b/drivers/base/regmap/regcache-rbtree.c
@@ -361,8 +361,8 @@ regcache_rbtree_node_alloc(struct regmap *map, unsigned int 
reg)
                rbnode->base_reg = reg;
        }
 
-       rbnode->block = kmalloc(rbnode->blklen * map->cache_word_size,
-                               GFP_KERNEL);
+       rbnode->block = kmalloc_array(rbnode->blklen, map->cache_word_size,
+                                     GFP_KERNEL);
        if (!rbnode->block)
                goto err_free;
 
diff --git a/drivers/base/regmap/regmap-irq.c b/drivers/base/regmap/regmap-irq.c
index 78d4805..79014be 100644
--- a/drivers/base/regmap/regmap-irq.c
+++ b/drivers/base/regmap/regmap-irq.c
@@ -400,8 +400,9 @@ int regmap_add_irq_chip(struct regmap *map, int irq, int 
irq_flags,
 
        if (!map->use_single_read && map->reg_stride == 1 &&
            d->irq_reg_stride == 1) {
-               d->status_reg_buf = kmalloc(map->format.val_bytes *
-                                           chip->num_regs, GFP_KERNEL);
+               d->status_reg_buf = kmalloc_array(chip->num_regs,
+                                                 map->format.val_bytes,
+                                                 GFP_KERNEL);
                if (!d->status_reg_buf)
                        goto err_alloc;
        }
-- 
1.8.3.1


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to