Re: [PATCH 1/3] PM / Domains: Don't kfree() the virtual device in the error path
From: Viresh Kumar
Date: Mon Apr 22 2019 - 04:27:57 EST
On 18-04-19, 12:27, Ulf Hansson wrote:
> It's not correct to call kfree(dev) when device_register(dev) has failed.
> Fix this by calling put_device(dev) instead.
>
> Fixes: 3c095f32a92b ("PM / Domains: Add support for multi PM domains per device to genpd")
> Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
> ---
> drivers/base/power/domain.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
> index ecac03dcc9b2..7fec69aebf46 100644
> --- a/drivers/base/power/domain.c
> +++ b/drivers/base/power/domain.c
> @@ -2528,7 +2528,7 @@ struct device *genpd_dev_pm_attach_by_id(struct device *dev,
>
> ret = device_register(virt_dev);
> if (ret) {
> - kfree(virt_dev);
> + put_device(virt_dev);
> return ERR_PTR(ret);
> }
Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
--
viresh