The allocation for the clock bulk data does a classic sizeof(pointer)
instead of sizeof(struct) so the array ends up incorrectly sized
for the clock data.
Cc: [email protected]
Fixes: 8e54eea ("drm/msm: Add a helper function to parse clock names")
Signed-off-by: Jordan Crouse <[email protected]>
---
drivers/gpu/drm/msm/msm_drv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 906b2bb..31e1481 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -96,7 +96,7 @@ int msm_clk_bulk_get(struct device *dev, struct clk_bulk_data **bulk)
if (count < 1)
return 0;
- local = devm_kcalloc(dev, sizeof(struct clk_bulk_data *),
+ local = devm_kcalloc(dev, sizeof(struct clk_bulk_data),
count, GFP_KERNEL);
if (!local)
return -ENOMEM;
--
2.7.4
On 2/21/2019 2:54 PM, Jordan Crouse wrote:
> The allocation for the clock bulk data does a classic sizeof(pointer)
> instead of sizeof(struct) so the array ends up incorrectly sized
> for the clock data.
>
> Cc: [email protected]
> Fixes: 8e54eea ("drm/msm: Add a helper function to parse clock names")
> Signed-off-by: Jordan Crouse <[email protected]>
> ---
>
> drivers/gpu/drm/msm/msm_drv.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> index 906b2bb..31e1481 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -96,7 +96,7 @@ int msm_clk_bulk_get(struct device *dev, struct clk_bulk_data **bulk)
> if (count < 1)
> return 0;
>
> - local = devm_kcalloc(dev, sizeof(struct clk_bulk_data *),
> + local = devm_kcalloc(dev, sizeof(struct clk_bulk_data),
> count, GFP_KERNEL);
> if (!local)
> return -ENOMEM;
>
Isn't msm_clk_bulk_get a duplication of devm_clk_bulk_get_all() ?
Surely it would be better to just use that instead?
--
Jeffrey Hugo
Qualcomm Datacenter Technologies as an affiliate of Qualcomm
Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.