drivers/clk/hisilicon/reset.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
With commit c721f189e89c ("reset: Instantiate reset GPIO controller for
shared reset-gpios") in place, the call sequence hisi_reset_init() ->
reset_controller_register() starts failing on Hi3798CV200 Poplar platform,
due to the new check added by the commit above.
if (rcdev->of_node && rcdev->of_args)
return -EINVAL;
The failure is caused by that hisi_reset_init() allocates memory for rcdev
without zeroing it out. Fix the issue by using kzalloc instead of
kmalloc for memory allocation.
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
---
drivers/clk/hisilicon/reset.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/clk/hisilicon/reset.c b/drivers/clk/hisilicon/reset.c
index 93cee17db8b1..c3b7daac9313 100644
--- a/drivers/clk/hisilicon/reset.c
+++ b/drivers/clk/hisilicon/reset.c
@@ -91,7 +91,7 @@ struct hisi_reset_controller *hisi_reset_init(struct platform_device *pdev)
{
struct hisi_reset_controller *rstc;
- rstc = devm_kmalloc(&pdev->dev, sizeof(*rstc), GFP_KERNEL);
+ rstc = devm_kzalloc(&pdev->dev, sizeof(*rstc), GFP_KERNEL);
if (!rstc)
return NULL;
--
2.47.3
On Di, 2026-02-24 at 10:19 +0800, Shawn Guo wrote:
> With commit c721f189e89c ("reset: Instantiate reset GPIO controller for
> shared reset-gpios") in place, the call sequence hisi_reset_init() ->
> reset_controller_register() starts failing on Hi3798CV200 Poplar platform,
> due to the new check added by the commit above.
>
> if (rcdev->of_node && rcdev->of_args)
> return -EINVAL;
>
> The failure is caused by that hisi_reset_init() allocates memory for rcdev
> without zeroing it out. Fix the issue by using kzalloc instead of
> kmalloc for memory allocation.
Fixes: 97b7129cd2af ("reset: hisilicon: change the definition of hisi_reset_init")
> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
> ---
> drivers/clk/hisilicon/reset.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/clk/hisilicon/reset.c b/drivers/clk/hisilicon/reset.c
> index 93cee17db8b1..c3b7daac9313 100644
> --- a/drivers/clk/hisilicon/reset.c
> +++ b/drivers/clk/hisilicon/reset.c
> @@ -91,7 +91,7 @@ struct hisi_reset_controller *hisi_reset_init(struct platform_device *pdev)
> {
> struct hisi_reset_controller *rstc;
>
> - rstc = devm_kmalloc(&pdev->dev, sizeof(*rstc), GFP_KERNEL);
> + rstc = devm_kzalloc(&pdev->dev, sizeof(*rstc), GFP_KERNEL);
> if (!rstc)
> return NULL;
>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
regards
Philipp
On Tue, Feb 24, 2026 at 10:19:12AM +0800, Shawn Guo wrote:
> With commit c721f189e89c ("reset: Instantiate reset GPIO controller for
> shared reset-gpios") in place, the call sequence hisi_reset_init() ->
> reset_controller_register() starts failing on Hi3798CV200 Poplar platform,
> due to the new check added by the commit above.
>
> if (rcdev->of_node && rcdev->of_args)
> return -EINVAL;
>
> The failure is caused by that hisi_reset_init() allocates memory for rcdev
> without zeroing it out. Fix the issue by using kzalloc instead of
> kmalloc for memory allocation.
>
> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Reviewed-by: Brian Masney <bmasney@redhat.com>
© 2016 - 2026 Red Hat, Inc.