[PATCH] crypto: caam - switch to use devm_kmemdup_array()

zhang.enpei@zte.com.cn posted 1 patch 2 months, 2 weeks ago
There is a newer version of this series
drivers/crypto/caam/ctrl.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
[PATCH] crypto: caam - switch to use devm_kmemdup_array()
Posted by zhang.enpei@zte.com.cn 2 months, 2 weeks ago
From: Zhang Enpei <zhang.enpei@zte.com.cn>
Use devm_kmemdup_array() to avoid multiplication or possible overflows.

Signed-off-by: Zhang Enpei <zhang.enpei@zte.com.cn>
---
 drivers/crypto/caam/ctrl.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/crypto/caam/ctrl.c b/drivers/crypto/caam/ctrl.c
index ce7b99019537..2250dce9c344 100644
--- a/drivers/crypto/caam/ctrl.c
+++ b/drivers/crypto/caam/ctrl.c
@@ -592,9 +592,9 @@ static int init_clocks(struct device *dev, const struct caam_imx_data *data)
        int ret;

        ctrlpriv->num_clks = data->num_clks;
-       ctrlpriv->clks = devm_kmemdup(dev, data->clks,
-                                     data->num_clks * sizeof(data->clks[0]),
-                                     GFP_KERNEL);
+       ctrlpriv->clks = devm_kmemdup_array(dev, data->clks,
+                                           data->num_clks, sizeof(data->clks[0]),
+                                           GFP_KERNEL);
        if (!ctrlpriv->clks)
                return -ENOMEM;

-- 
2.25.1
Re: [PATCH] crypto: caam - switch to use devm_kmemdup_array()
Posted by Christophe JAILLET 2 months, 2 weeks ago
Le 19/07/2025 à 10:34, zhang.enpei@zte.com.cn a écrit :
> From: Zhang Enpei <zhang.enpei@zte.com.cn>
> Use devm_kmemdup_array() to avoid multiplication or possible overflows.
> 
> Signed-off-by: Zhang Enpei <zhang.enpei@zte.com.cn>
> ---
>   drivers/crypto/caam/ctrl.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/crypto/caam/ctrl.c b/drivers/crypto/caam/ctrl.c
> index ce7b99019537..2250dce9c344 100644
> --- a/drivers/crypto/caam/ctrl.c
> +++ b/drivers/crypto/caam/ctrl.c
> @@ -592,9 +592,9 @@ static int init_clocks(struct device *dev, const struct caam_imx_data *data)
>          int ret;
> 
>          ctrlpriv->num_clks = data->num_clks;
> -       ctrlpriv->clks = devm_kmemdup(dev, data->clks,
> -                                     data->num_clks * sizeof(data->clks[0]),
> -                                     GFP_KERNEL);
> +       ctrlpriv->clks = devm_kmemdup_array(dev, data->clks,
> +                                           data->num_clks, sizeof(data->clks[0]),

sizeof(*data->clks) maybe?

> +                                           GFP_KERNEL);
>          if (!ctrlpriv->clks)
>                  return -ENOMEM;
> 

Just my 2c,

CJ
Re: [PATCH] crypto: caam - switch to use devm_kmemdup_array()
Posted by zhang.enpei@zte.com.cn 2 months, 2 weeks ago
Thanks for the review!
devm_kmemdup_array() will call size_mul() to combine its third and fourth parameters into
length for devm_kmemdup(). So keep the same value sizeof(data->clks[0]) here as before.
Re: [PATCH] crypto: caam - switch to use devm_kmemdup_array()
Posted by Christophe JAILLET 2 months, 2 weeks ago
Le 21/07/2025 à 04:06, zhang.enpei@zte.com.cn a écrit :
> Thanks for the review!
> devm_kmemdup_array() will call size_mul() to combine its third and fourth parameters into
> length for devm_kmemdup(). So keep the same value sizeof(data->clks[0]) here as before.
> 
> 

sizeof(data->clks[0]) and sizeof(*data->clks) are the same.

But the second version is the preferred style. See [1].

So while touching these lines of code, updating the style looked a good 
idea to me.

CJ


[1]: 
https://docs.kernel.org/6.15/process/coding-style.html#allocating-memory